

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>dcase_framework.application_core &mdash; DCASE2017 Baseline 1.0 documentation</title>
  

  
  
    <link rel="shortcut icon" href="../../_static/favicon.ico"/>
  
  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../../_static/theme_overrides.css" type="text/css" />
  

  
        <link rel="index" title="Index"
              href="../../genindex.html"/>
        <link rel="search" title="Search" href="../../search.html"/>
    <link rel="top" title="DCASE2017 Baseline 1.0 documentation" href="../../index.html"/>
        <link rel="up" title="Module code" href="../index.html"/> 

  
  <script src="../../_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="../../index.html" class="icon icon-home"> DCASE2017 Baseline
          

          
            
            <img src="../../_static/dcase2017_baseline.png" class="logo" />
          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <p class="caption"><span class="caption-text">Baseline system</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../system_description.html">System description</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#mlp-based-system-dcase2017-baseline">MLP based system, DCASE2017 baseline</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#gmm-based-approach">GMM based approach</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system_description.html#processing-blocks">Processing blocks</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../applications.html">Applications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task1-acoustic-scene-classification"> Acoustic scene classification</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#results">Results</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task2-detection-of-rare-sound-events"> Detection of rare sound events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#id2">Results</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../applications.html#task3-sound-event-detection-in-real-life-audio"> Sound event detection in real life audio</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../applications.html#id3">Results</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../usage_tutorial.html">Usage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../usage_tutorial.html#application-arguments">Application arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../usage_tutorial.html#basic-usage">Basic usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../parameterization.html">Parameterization</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-overwriting">Parameter overwriting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-file">Parameter file</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-hash">Parameter hash</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameterization.html#parameter-sections">Parameter sections</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#flow">Flow</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#general">General</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#path">Path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#dataset">Dataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-extractor">Feature extractor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-stacker">Feature stacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-normalizer">Feature normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#feature-aggregator">Feature aggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#learner">Learner</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#recognizer">Recognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#evaluator">Evaluator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../parameterization.html#logging">Logging</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../reproducibility.html">Reproducibility</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../reproducibility.html#blas-libraries">BLAS libraries</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reproducibility.html#intel-math-kernel">Intel Math Kernel</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reproducibility.html#running-the-baseline-system">Running the baseline system</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">DCASE Framework</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../framework.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../framework.html#training-process">Training process</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../framework.html#testing-process">Testing process</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../extending_framework.html">Extending the framework</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#adding-datasets">Adding datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#adding-features">Adding features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#addinng-learners">Addinng learners</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../extending_framework.html#extending-applicationcore">Extending ApplicationCore</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../application_core.html">Application core</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#acousticsceneclassificationappcore">AcousticSceneClassificationAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.html">dcase_framework.application_core.AcousticSceneClassificationAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.show_dataset_list.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.show_parameters.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.initialize.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_extraction.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation.html">dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#soundeventappcore">SoundEventAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.html">dcase_framework.application_core.SoundEventAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.show_dataset_list.html">dcase_framework.application_core.SoundEventAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.show_parameters.html">dcase_framework.application_core.SoundEventAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.initialize.html">dcase_framework.application_core.SoundEventAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.feature_extraction.html">dcase_framework.application_core.SoundEventAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.feature_normalization.html">dcase_framework.application_core.SoundEventAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_training.html">dcase_framework.application_core.SoundEventAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_testing.html">dcase_framework.application_core.SoundEventAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_evaluation.html">dcase_framework.application_core.SoundEventAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#binarysoundeventappcore">BinarySoundEventAppCore</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.html">dcase_framework.application_core.BinarySoundEventAppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.show_dataset_list.html">dcase_framework.application_core.BinarySoundEventAppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.show_parameters.html">dcase_framework.application_core.BinarySoundEventAppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.initialize.html">dcase_framework.application_core.BinarySoundEventAppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction.html">dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization.html">dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_training.html">dcase_framework.application_core.BinarySoundEventAppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_testing.html">dcase_framework.application_core.BinarySoundEventAppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation.html">dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../application_core.html#appcore-base-class">AppCore &#8211; base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.html">dcase_framework.application_core.AppCore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.show_dataset_list.html">dcase_framework.application_core.AppCore.show_dataset_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.show_parameters.html">dcase_framework.application_core.AppCore.show_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.initialize.html">dcase_framework.application_core.AppCore.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.feature_extraction.html">dcase_framework.application_core.AppCore.feature_extraction</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.feature_normalization.html">dcase_framework.application_core.AppCore.feature_normalization</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_training.html">dcase_framework.application_core.AppCore.system_training</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_testing.html">dcase_framework.application_core.AppCore.system_testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.application_core.AppCore.system_evaluation.html">dcase_framework.application_core.AppCore.system_evaluation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../parameters.html">Parameters</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#recipe">Recipe</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#paths-and-parameter-hash">Paths and parameter hash</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../parameters.html#parametercontainer">ParameterContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.html">dcase_framework.parameters.ParameterContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.load.html">dcase_framework.parameters.ParameterContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.save.html">dcase_framework.parameters.ParameterContainer.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.exists.html">dcase_framework.parameters.ParameterContainer.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.get_path.html">dcase_framework.parameters.ParameterContainer.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.show.html">dcase_framework.parameters.ParameterContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.log.html">dcase_framework.parameters.ParameterContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.override.html">dcase_framework.parameters.ParameterContainer.override</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.process.html">dcase_framework.parameters.ParameterContainer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.process_method_parameters.html">dcase_framework.parameters.ParameterContainer.process_method_parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.parameters.ParameterContainer.get_hash.html">dcase_framework.parameters.ParameterContainer.get_hash</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../files.html">Files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#audiofile">AudioFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.html">dcase_framework.files.AudioFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.load.html">dcase_framework.files.AudioFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.save.html">dcase_framework.files.AudioFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.exists.html">dcase_framework.files.AudioFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.AudioFile.empty.html">dcase_framework.files.AudioFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#parameterfile">ParameterFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.html">dcase_framework.files.ParameterFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.load.html">dcase_framework.files.ParameterFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.save.html">dcase_framework.files.ParameterFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.exists.html">dcase_framework.files.ParameterFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ParameterFile.empty.html">dcase_framework.files.ParameterFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#featurefile">FeatureFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.html">dcase_framework.files.FeatureFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.load.html">dcase_framework.files.FeatureFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.save.html">dcase_framework.files.FeatureFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.exists.html">dcase_framework.files.FeatureFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FeatureFile.empty.html">dcase_framework.files.FeatureFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#datafile">DataFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.html">dcase_framework.files.DataFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.load.html">dcase_framework.files.DataFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.save.html">dcase_framework.files.DataFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.exists.html">dcase_framework.files.DataFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DataFile.empty.html">dcase_framework.files.DataFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#repositoryfile">RepositoryFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.html">dcase_framework.files.RepositoryFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.load.html">dcase_framework.files.RepositoryFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.exists.html">dcase_framework.files.RepositoryFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.RepositoryFile.empty.html">dcase_framework.files.RepositoryFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#textfile">TextFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.html">dcase_framework.files.TextFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.load.html">dcase_framework.files.TextFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.save.html">dcase_framework.files.TextFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.exists.html">dcase_framework.files.TextFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.TextFile.empty.html">dcase_framework.files.TextFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#dictfile">DictFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.html">dcase_framework.files.DictFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.load.html">dcase_framework.files.DictFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.save.html">dcase_framework.files.DictFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.exists.html">dcase_framework.files.DictFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.DictFile.empty.html">dcase_framework.files.DictFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#listfile">ListFile</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.html">dcase_framework.files.ListFile</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.load.html">dcase_framework.files.ListFile.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.save.html">dcase_framework.files.ListFile.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.exists.html">dcase_framework.files.ListFile.exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.ListFile.empty.html">dcase_framework.files.ListFile.empty</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../files.html#mixins">Mixins</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.files.FileMixin.html">dcase_framework.files.FileMixin</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../datasets.html">Datasets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#dataset-base-class">Dataset - Base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.html">dcase_framework.datasets.Dataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.initialize.html">dcase_framework.datasets.Dataset.initialize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.show_info.html">dcase_framework.datasets.Dataset.show_info</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_files.html">dcase_framework.datasets.Dataset.audio_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_file_count.html">dcase_framework.datasets.Dataset.audio_file_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.meta.html">dcase_framework.datasets.Dataset.meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.meta_count.html">dcase_framework.datasets.Dataset.meta_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.error_meta.html">dcase_framework.datasets.Dataset.error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.error_meta_count.html">dcase_framework.datasets.Dataset.error_meta_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.fold_count.html">dcase_framework.datasets.Dataset.fold_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.scene_labels.html">dcase_framework.datasets.Dataset.scene_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.scene_label_count.html">dcase_framework.datasets.Dataset.scene_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.event_labels.html">dcase_framework.datasets.Dataset.event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.event_label_count.html">dcase_framework.datasets.Dataset.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_tags.html">dcase_framework.datasets.Dataset.audio_tags</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.audio_tag_count.html">dcase_framework.datasets.Dataset.audio_tag_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.download_packages.html">dcase_framework.datasets.Dataset.download_packages</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.extract.html">dcase_framework.datasets.Dataset.extract</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.train.html">dcase_framework.datasets.Dataset.train</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.test.html">dcase_framework.datasets.Dataset.test</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.eval.html">dcase_framework.datasets.Dataset.eval</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.train_files.html">dcase_framework.datasets.Dataset.train_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.test_files.html">dcase_framework.datasets.Dataset.test_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.eval_files.html">dcase_framework.datasets.Dataset.eval_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.validation_files.html">dcase_framework.datasets.Dataset.validation_files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.folds.html">dcase_framework.datasets.Dataset.folds</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_meta.html">dcase_framework.datasets.Dataset.file_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_error_meta.html">dcase_framework.datasets.Dataset.file_error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.file_error_meta.html">dcase_framework.datasets.Dataset.file_error_meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.relative_to_absolute_path.html">dcase_framework.datasets.Dataset.relative_to_absolute_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.Dataset.absolute_to_relative.html">dcase_framework.datasets.Dataset.absolute_to_relative</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#acousticscenedataset">AcousticSceneDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.AcousticSceneDataset.html">dcase_framework.datasets.AcousticSceneDataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2017_DevelopmentSet.html">dcase_framework.datasets.TUTAcousticScenes_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2016_DevelopmentSet.html">dcase_framework.datasets.TUTAcousticScenes_2016_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTAcousticScenes_2016_EvaluationSet.html">dcase_framework.datasets.TUTAcousticScenes_2016_EvaluationSet</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#soundeventdataset">SoundEventDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.html">dcase_framework.datasets.SoundEventDataset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.event_label_count.html">dcase_framework.datasets.SoundEventDataset.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.event_labels.html">dcase_framework.datasets.SoundEventDataset.event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.train.html">dcase_framework.datasets.SoundEventDataset.train</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.SoundEventDataset.test.html">dcase_framework.datasets.SoundEventDataset.test</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTRareSoundEvents_2017_DevelopmentSet.html">dcase_framework.datasets.TUTRareSoundEvents_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2017_DevelopmentSet.html">dcase_framework.datasets.TUTSoundEvents_2017_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2016_DevelopmentSet.html">dcase_framework.datasets.TUTSoundEvents_2016_DevelopmentSet</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.TUTSoundEvents_2016_EvaluationSet.html">dcase_framework.datasets.TUTSoundEvents_2016_EvaluationSet</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../datasets.html#audiotaggingdataset">AudioTaggingDataset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.datasets.AudioTaggingDataset.html">dcase_framework.datasets.AudioTaggingDataset</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../metadata.html">Meta data</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#metadataitem">MetaDataItem</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.html">dcase_framework.metadata.MetaDataItem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.id.html">dcase_framework.metadata.MetaDataItem.id</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.file.html">dcase_framework.metadata.MetaDataItem.file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.scene_label.html">dcase_framework.metadata.MetaDataItem.scene_label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_label.html">dcase_framework.metadata.MetaDataItem.event_label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_onset.html">dcase_framework.metadata.MetaDataItem.event_onset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.event_offset.html">dcase_framework.metadata.MetaDataItem.event_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.identifier.html">dcase_framework.metadata.MetaDataItem.identifier</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataItem.source_label.html">dcase_framework.metadata.MetaDataItem.source_label</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#metadatacontainer">MetaDataContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.html">dcase_framework.metadata.MetaDataContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.log.html">dcase_framework.metadata.MetaDataContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.show.html">dcase_framework.metadata.MetaDataContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.get_string.html">dcase_framework.metadata.MetaDataContainer.get_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.update.html">dcase_framework.metadata.MetaDataContainer.update</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter.html">dcase_framework.metadata.MetaDataContainer.filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter_time_segment.html">dcase_framework.metadata.MetaDataContainer.filter_time_segment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.process_events.html">dcase_framework.metadata.MetaDataContainer.process_events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.remove_field.html">dcase_framework.metadata.MetaDataContainer.remove_field</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.slice_field.html">dcase_framework.metadata.MetaDataContainer.slice_field</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.filter_time_segment.html">dcase_framework.metadata.MetaDataContainer.filter_time_segment</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.add_time_offset.html">dcase_framework.metadata.MetaDataContainer.add_time_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.file_list.html">dcase_framework.metadata.MetaDataContainer.file_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_count.html">dcase_framework.metadata.MetaDataContainer.event_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.scene_label_count.html">dcase_framework.metadata.MetaDataContainer.scene_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_label_count.html">dcase_framework.metadata.MetaDataContainer.event_label_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.unique_scene_labels.html">dcase_framework.metadata.MetaDataContainer.unique_scene_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.unique_event_labels.html">dcase_framework.metadata.MetaDataContainer.unique_event_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.max_offset.html">dcase_framework.metadata.MetaDataContainer.max_offset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.load.html">dcase_framework.metadata.MetaDataContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.save.html">dcase_framework.metadata.MetaDataContainer.save</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_stat_counts.html">dcase_framework.metadata.MetaDataContainer.event_stat_counts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.MetaDataContainer.event_roll.html">dcase_framework.metadata.MetaDataContainer.event_roll</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#eventroll">EventRoll</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.html">dcase_framework.metadata.EventRoll</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.roll.html">dcase_framework.metadata.EventRoll.roll</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.pad.html">dcase_framework.metadata.EventRoll.pad</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.EventRoll.plot.html">dcase_framework.metadata.EventRoll.plot</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#probabilityitem">ProbabilityItem</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.html">dcase_framework.metadata.ProbabilityItem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.id.html">dcase_framework.metadata.ProbabilityItem.id</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.file.html">dcase_framework.metadata.ProbabilityItem.file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.label.html">dcase_framework.metadata.ProbabilityItem.label</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.timestamp.html">dcase_framework.metadata.ProbabilityItem.timestamp</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.probability.html">dcase_framework.metadata.ProbabilityItem.probability</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityItem.get_list.html">dcase_framework.metadata.ProbabilityItem.get_list</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../metadata.html#probabilitycontainer">ProbabilityContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.html">dcase_framework.metadata.ProbabilityContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.log.html">dcase_framework.metadata.ProbabilityContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.show.html">dcase_framework.metadata.ProbabilityContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.update.html">dcase_framework.metadata.ProbabilityContainer.update</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.file_list.html">dcase_framework.metadata.ProbabilityContainer.file_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.unique_labels.html">dcase_framework.metadata.ProbabilityContainer.unique_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.filter.html">dcase_framework.metadata.ProbabilityContainer.filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.get_string.html">dcase_framework.metadata.ProbabilityContainer.get_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.load.html">dcase_framework.metadata.ProbabilityContainer.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.metadata.ProbabilityContainer.save.html">dcase_framework.metadata.ProbabilityContainer.save</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../features.html">Features</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurecontainer">FeatureContainer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.html">dcase_framework.features.FeatureContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.show.html">dcase_framework.features.FeatureContainer.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.log.html">dcase_framework.features.FeatureContainer.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.get_path.html">dcase_framework.features.FeatureContainer.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.shape.html">dcase_framework.features.FeatureContainer.shape</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.channels.html">dcase_framework.features.FeatureContainer.channels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.frames.html">dcase_framework.features.FeatureContainer.frames</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.vector_length.html">dcase_framework.features.FeatureContainer.vector_length</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.feat.html">dcase_framework.features.FeatureContainer.feat</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.stat.html">dcase_framework.features.FeatureContainer.stat</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.meta.html">dcase_framework.features.FeatureContainer.meta</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureContainer.load.html">dcase_framework.features.FeatureContainer.load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurerepository">FeatureRepository</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.html">dcase_framework.features.FeatureRepository</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.show.html">dcase_framework.features.FeatureRepository.show</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.log.html">dcase_framework.features.FeatureRepository.log</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.get_path.html">dcase_framework.features.FeatureRepository.get_path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureRepository.load.html">dcase_framework.features.FeatureRepository.load</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featureextractor">FeatureExtractor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.html">dcase_framework.features.FeatureExtractor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.extract.html">dcase_framework.features.FeatureExtractor.extract</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureExtractor.get_default_parameters.html">dcase_framework.features.FeatureExtractor.get_default_parameters</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurenormalizer">FeatureNormalizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.html">dcase_framework.features.FeatureNormalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.accumulate.html">dcase_framework.features.FeatureNormalizer.accumulate</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.finalize.html">dcase_framework.features.FeatureNormalizer.finalize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.normalize.html">dcase_framework.features.FeatureNormalizer.normalize</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureNormalizer.process.html">dcase_framework.features.FeatureNormalizer.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featurestacker">FeatureStacker</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.html">dcase_framework.features.FeatureStacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.normalizer.html">dcase_framework.features.FeatureStacker.normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.feature_vector.html">dcase_framework.features.FeatureStacker.feature_vector</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureStacker.process.html">dcase_framework.features.FeatureStacker.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featureaggregator">FeatureAggregator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureAggregator.html">dcase_framework.features.FeatureAggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureAggregator.process.html">dcase_framework.features.FeatureAggregator.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../features.html#featuremasker">FeatureMasker</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureMasker.html">dcase_framework.features.FeatureMasker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.features.FeatureMasker.process.html">dcase_framework.features.FeatureMasker.process</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../learners.html">Learners</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#sceneclassifier">SceneClassifier</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifiergmm">SceneClassifierGMM</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.html">dcase_framework.learners.SceneClassifierGMM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.learn.html">dcase_framework.learners.SceneClassifierGMM.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierGMM.predict.html">dcase_framework.learners.SceneClassifierGMM.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifiermlp">SceneClassifierMLP</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.html">dcase_framework.learners.SceneClassifierMLP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.learn.html">dcase_framework.learners.SceneClassifierMLP.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierMLP.predict.html">dcase_framework.learners.SceneClassifierMLP.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#sceneclassifierkerassequential">SceneClassifierKerasSequential</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.html">dcase_framework.learners.SceneClassifierKerasSequential</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.learn.html">dcase_framework.learners.SceneClassifierKerasSequential.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.SceneClassifierKerasSequential.predict.html">dcase_framework.learners.SceneClassifierKerasSequential.predict</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#eventdetector">EventDetector</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetector.html">dcase_framework.learners.EventDetector</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectorgmm">EventDetectorGMM</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.html">dcase_framework.learners.EventDetectorGMM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.learn.html">dcase_framework.learners.EventDetectorGMM.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorGMM.predict.html">dcase_framework.learners.EventDetectorGMM.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectormlp">EventDetectorMLP</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.html">dcase_framework.learners.EventDetectorMLP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.learn.html">dcase_framework.learners.EventDetectorMLP.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorMLP.predict.html">dcase_framework.learners.EventDetectorMLP.predict</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../learners.html#eventdetectorkerassequential">EventDetectorKerasSequential</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.html">dcase_framework.learners.EventDetectorKerasSequential</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.learn.html">dcase_framework.learners.EventDetectorKerasSequential.learn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../generated/dcase_framework.learners.EventDetectorKerasSequential.predict.html">dcase_framework.learners.EventDetectorKerasSequential.predict</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../learners.html#learnercontainer-base-class">LearnerContainer - Base class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.html">dcase_framework.learners.LearnerContainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.class_labels.html">dcase_framework.learners.LearnerContainer.class_labels</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.method.html">dcase_framework.learners.LearnerContainer.method</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.params.html">dcase_framework.learners.LearnerContainer.params</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_masker.html">dcase_framework.learners.LearnerContainer.feature_masker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_normalizer.html">dcase_framework.learners.LearnerContainer.feature_normalizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_stacker.html">dcase_framework.learners.LearnerContainer.feature_stacker</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.feature_aggregator.html">dcase_framework.learners.LearnerContainer.feature_aggregator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.model.html">dcase_framework.learners.LearnerContainer.model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.set_seed.html">dcase_framework.learners.LearnerContainer.set_seed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.learners.LearnerContainer.learner_params.html">dcase_framework.learners.LearnerContainer.learner_params</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../recognizers.html">Recognizers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#scenerecognizer">SceneRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.SceneRecognizer.html">dcase_framework.recognizers.SceneRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.SceneRecognizer.process.html">dcase_framework.recognizers.SceneRecognizer.process</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#eventrecognizer">EventRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.html">dcase_framework.recognizers.EventRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.process.html">dcase_framework.recognizers.EventRecognizer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.EventRecognizer.process_ratio.html">dcase_framework.recognizers.EventRecognizer.process_ratio</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../recognizers.html#baserecognizer">BaseRecognizer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.html">dcase_framework.recognizers.BaseRecognizer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.collapse_probabilities.html">dcase_framework.recognizers.BaseRecognizer.collapse_probabilities</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.collapse_probabilities_windowed.html">dcase_framework.recognizers.BaseRecognizer.collapse_probabilities_windowed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.find_contiguous_regions.html">dcase_framework.recognizers.BaseRecognizer.find_contiguous_regions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.recognizers.BaseRecognizer.process_activity.html">dcase_framework.recognizers.BaseRecognizer.process_activity</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../data.html">Data utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#datasequencer">DataSequencer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.html">dcase_framework.data.DataSequencer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.process.html">dcase_framework.data.DataSequencer.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataSequencer.increase_shifting.html">dcase_framework.data.DataSequencer.increase_shifting</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#dataprocessor">DataProcessor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.html">dcase_framework.data.DataProcessor</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.load.html">dcase_framework.data.DataProcessor.load</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process.html">dcase_framework.data.DataProcessor.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_features.html">dcase_framework.data.DataProcessor.process_features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_activity_data.html">dcase_framework.data.DataProcessor.process_activity_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.process_data.html">dcase_framework.data.DataProcessor.process_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataProcessor.call_method.html">dcase_framework.data.DataProcessor.call_method</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#databuffer">DataBuffer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.html">dcase_framework.data.DataBuffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.count.html">dcase_framework.data.DataBuffer.count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.full.html">dcase_framework.data.DataBuffer.full</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.key_exists.html">dcase_framework.data.DataBuffer.key_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.set.html">dcase_framework.data.DataBuffer.set</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.get.html">dcase_framework.data.DataBuffer.get</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.DataBuffer.clear.html">dcase_framework.data.DataBuffer.clear</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../data.html#processingchain">ProcessingChain</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.html">dcase_framework.data.ProcessingChain</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.process.html">dcase_framework.data.ProcessingChain.process</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.data.ProcessingChain.call_method.html">dcase_framework.data.ProcessingChain.call_method</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../keras_utils.html">Keras utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#kerasmixin">KerasMixin</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_model.html">dcase_framework.keras_utils.KerasMixin.create_model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_callback_list.html">dcase_framework.keras_utils.KerasMixin.create_callback_list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.create_external_metric_evaluators.html">dcase_framework.keras_utils.KerasMixin.create_external_metric_evaluators</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.prepare_data.html">dcase_framework.keras_utils.KerasMixin.prepare_data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.prepare_activity.html">dcase_framework.keras_utils.KerasMixin.prepare_activity</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.keras_model_exists.html">dcase_framework.keras_utils.KerasMixin.keras_model_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.log_model_summary.html">dcase_framework.keras_utils.KerasMixin.log_model_summary</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.plot_model.html">dcase_framework.keras_utils.KerasMixin.plot_model</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.KerasMixin.get_processing_interval.html">dcase_framework.keras_utils.KerasMixin.get_processing_interval</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#basecallback">BaseCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseCallback.html">dcase_framework.keras_utils.BaseCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#progressloggercallback">ProgressLoggerCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.ProgressLoggerCallback.html">dcase_framework.keras_utils.ProgressLoggerCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#progressplottercallback">ProgressPlotterCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.ProgressPlotterCallback.html">dcase_framework.keras_utils.ProgressPlotterCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#stoppercallback">StopperCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.StopperCallback.html">dcase_framework.keras_utils.StopperCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#stashercallback">StasherCallback</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.StasherCallback.html">dcase_framework.keras_utils.StasherCallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#basedatagenerator">BaseDataGenerator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.html">dcase_framework.keras_utils.BaseDataGenerator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.input_size.html">dcase_framework.keras_utils.BaseDataGenerator.input_size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.data_size.html">dcase_framework.keras_utils.BaseDataGenerator.data_size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.steps_count.html">dcase_framework.keras_utils.BaseDataGenerator.steps_count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.BaseDataGenerator.info.html">dcase_framework.keras_utils.BaseDataGenerator.info</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../keras_utils.html#featuregenerator">FeatureGenerator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.FeatureGenerator.html">dcase_framework.keras_utils.FeatureGenerator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.keras_utils.FeatureGenerator.generator.html">dcase_framework.keras_utils.FeatureGenerator.generator</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../ui.html">User interfacing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../ui.html#fancylogger">FancyLogger</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.html">dcase_framework.ui.FancyLogger</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.title.html">dcase_framework.ui.FancyLogger.title</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.section_header.html">dcase_framework.ui.FancyLogger.section_header</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.foot.html">dcase_framework.ui.FancyLogger.foot</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.line.html">dcase_framework.ui.FancyLogger.line</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.data.html">dcase_framework.ui.FancyLogger.data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.info.html">dcase_framework.ui.FancyLogger.info</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.debug.html">dcase_framework.ui.FancyLogger.debug</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.ui.FancyLogger.error.html">dcase_framework.ui.FancyLogger.error</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../utils.html">Utils</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#utility-functions">Utility functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.setup_logging.html">dcase_framework.utils.setup_logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_parameter_hash.html">dcase_framework.utils.get_parameter_hash</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_class_inheritors.html">dcase_framework.utils.get_class_inheritors</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.get_byte_string.html">dcase_framework.utils.get_byte_string</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.argument_file_exists.html">dcase_framework.utils.argument_file_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.filelist_exists.html">dcase_framework.utils.filelist_exists</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.posix_path.html">dcase_framework.utils.posix_path</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#timer">Timer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.html">dcase_framework.utils.Timer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.start.html">dcase_framework.utils.Timer.start</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.stop.html">dcase_framework.utils.Timer.stop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.elapsed.html">dcase_framework.utils.Timer.elapsed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.Timer.get_string.html">dcase_framework.utils.Timer.get_string</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#suppressstdoutandstderr">SuppressStdoutAndStderr</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SuppressStdoutAndStderr.html">dcase_framework.utils.SuppressStdoutAndStderr</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../utils.html#simplemathstringevaluator">SimpleMathStringEvaluator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SimpleMathStringEvaluator.html">dcase_framework.utils.SimpleMathStringEvaluator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../generated/dcase_framework.utils.SimpleMathStringEvaluator.eval.html">dcase_framework.utils.SimpleMathStringEvaluator.eval</a></li>
</ul>
</li>
</ul>
</li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../index.html">DCASE2017 Baseline</a>
        
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../index.html">Docs</a> &raquo;</li>
        
          <li><a href="../index.html">Module code</a> &raquo;</li>
        
      <li>dcase_framework.application_core</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <h1>Source code for dcase_framework.application_core</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Application core</span>
<span class="sd">================</span>

<span class="sd">An application core is a utility class to handle all &quot;business logic&quot; for application.</span>
<span class="sd">It handles communication between :func:`dcase_framework.datasets.Dataset`,</span>
<span class="sd">:func:`dcase_framework.features.FeatureExtractor`,</span>
<span class="sd">:func:`dcase_framework.features.FeatureNormalizer`, and</span>
<span class="sd">:func:`dcase_framework.learners.LearnerContainer` classes.</span>


<span class="sd">Usage examples:</span>

<span class="sd">.. code-block:: python</span>
<span class="sd">    :linenos:</span>

<span class="sd">    params = ParameterContainer(filename=&#39;parameters.yaml&#39;).load().process()</span>

<span class="sd">    app = AcousticSceneClassificationAppCore(name=&#39;Test system&#39;,</span>
<span class="sd">                                             params=params,</span>
<span class="sd">                                             setup_label=&#39;Development setup&#39;</span>
<span class="sd">                                             )</span>
<span class="sd">    # Show all datasets available</span>
<span class="sd">    app.show_dataset_list()</span>

<span class="sd">    # Show parameters</span>
<span class="sd">    app.show_parameters()</span>

<span class="sd">    # Initialize application</span>
<span class="sd">    app.initialize()</span>

<span class="sd">    # Extract features</span>
<span class="sd">    app.feature_extraction()</span>

<span class="sd">    # Normalize features</span>
<span class="sd">    app.feature_normalization()</span>

<span class="sd">    # Train system</span>
<span class="sd">    app.system_training()</span>

<span class="sd">    # Test system</span>
<span class="sd">    app.system_testing()</span>

<span class="sd">    # Evaluate system</span>
<span class="sd">    app.system_evaluation()</span>

<span class="sd">AcousticSceneClassificationAppCore</span>
<span class="sd">^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</span>

<span class="sd">Application core for acoustic scene classification applications.</span>

<span class="sd">.. autosummary::</span>
<span class="sd">    :toctree: generated/</span>

<span class="sd">    AcousticSceneClassificationAppCore</span>
<span class="sd">    AcousticSceneClassificationAppCore.show_dataset_list</span>
<span class="sd">    AcousticSceneClassificationAppCore.show_parameters</span>
<span class="sd">    AcousticSceneClassificationAppCore.initialize</span>
<span class="sd">    AcousticSceneClassificationAppCore.feature_extraction</span>
<span class="sd">    AcousticSceneClassificationAppCore.feature_normalization</span>
<span class="sd">    AcousticSceneClassificationAppCore.system_training</span>
<span class="sd">    AcousticSceneClassificationAppCore.system_testing</span>
<span class="sd">    AcousticSceneClassificationAppCore.system_evaluation</span>

<span class="sd">SoundEventAppCore</span>
<span class="sd">^^^^^^^^^^^^^^^^^</span>

<span class="sd">Application core for sound event detection applications.</span>

<span class="sd">.. autosummary::</span>
<span class="sd">    :toctree: generated/</span>

<span class="sd">    SoundEventAppCore</span>
<span class="sd">    SoundEventAppCore.show_dataset_list</span>
<span class="sd">    SoundEventAppCore.show_parameters</span>
<span class="sd">    SoundEventAppCore.initialize</span>
<span class="sd">    SoundEventAppCore.feature_extraction</span>
<span class="sd">    SoundEventAppCore.feature_normalization</span>
<span class="sd">    SoundEventAppCore.system_training</span>
<span class="sd">    SoundEventAppCore.system_testing</span>
<span class="sd">    SoundEventAppCore.system_evaluation</span>

<span class="sd">BinarySoundEventAppCore</span>
<span class="sd">^^^^^^^^^^^^^^^^^^^^^^^</span>

<span class="sd">Application core for binary sound event detection applications.</span>

<span class="sd">.. autosummary::</span>
<span class="sd">    :toctree: generated/</span>

<span class="sd">    BinarySoundEventAppCore</span>
<span class="sd">    BinarySoundEventAppCore.show_dataset_list</span>
<span class="sd">    BinarySoundEventAppCore.show_parameters</span>
<span class="sd">    BinarySoundEventAppCore.initialize</span>
<span class="sd">    BinarySoundEventAppCore.feature_extraction</span>
<span class="sd">    BinarySoundEventAppCore.feature_normalization</span>
<span class="sd">    BinarySoundEventAppCore.system_training</span>
<span class="sd">    BinarySoundEventAppCore.system_testing</span>
<span class="sd">    BinarySoundEventAppCore.system_evaluation</span>

<span class="sd">AppCore -- base class</span>
<span class="sd">^^^^^^^^^^^^^^^^^^^^^</span>

<span class="sd">Base class for all application cores.</span>

<span class="sd">.. autosummary::</span>
<span class="sd">    :toctree: generated/</span>

<span class="sd">    AppCore</span>
<span class="sd">    AppCore.show_dataset_list</span>
<span class="sd">    AppCore.show_parameters</span>
<span class="sd">    AppCore.initialize</span>
<span class="sd">    AppCore.feature_extraction</span>
<span class="sd">    AppCore.feature_normalization</span>
<span class="sd">    AppCore.system_training</span>
<span class="sd">    AppCore.system_testing</span>
<span class="sd">    AppCore.system_evaluation</span>

<span class="sd">&quot;&quot;&quot;</span>

<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">print_function</span><span class="p">,</span> <span class="n">absolute_import</span>
<span class="kn">from</span> <span class="nn">six</span> <span class="k">import</span> <span class="n">iteritems</span>

<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">sed_eval</span>
<span class="kn">import</span> <span class="nn">platform</span>
<span class="kn">import</span> <span class="nn">pkg_resources</span>
<span class="kn">import</span> <span class="nn">warnings</span>
<span class="kn">import</span> <span class="nn">collections</span>
<span class="kn">from</span> <span class="nn">tqdm</span> <span class="k">import</span> <span class="n">tqdm</span>

<span class="kn">from</span> <span class="nn">.containers</span> <span class="k">import</span> <span class="n">DottedDict</span>
<span class="kn">from</span> <span class="nn">.files</span> <span class="k">import</span> <span class="n">ParameterFile</span>
<span class="kn">from</span> <span class="nn">.features</span> <span class="k">import</span> <span class="n">FeatureContainer</span><span class="p">,</span> <span class="n">FeatureRepository</span><span class="p">,</span> <span class="n">FeatureExtractor</span><span class="p">,</span> <span class="n">FeatureNormalizer</span><span class="p">,</span> \
    <span class="n">FeatureStacker</span><span class="p">,</span> <span class="n">FeatureAggregator</span><span class="p">,</span> <span class="n">FeatureMasker</span>
<span class="kn">from</span> <span class="nn">.datasets</span> <span class="k">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">filelist_exists</span><span class="p">,</span> <span class="n">Timer</span>
<span class="kn">from</span> <span class="nn">.decorators</span> <span class="k">import</span> <span class="n">before_and_after_function_wrapper</span>
<span class="kn">from</span> <span class="nn">.learners</span> <span class="k">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">.recognizers</span> <span class="k">import</span> <span class="n">SceneRecognizer</span><span class="p">,</span> <span class="n">EventRecognizer</span>
<span class="kn">from</span> <span class="nn">.metadata</span> <span class="k">import</span> <span class="n">MetaDataContainer</span><span class="p">,</span> <span class="n">MetaDataItem</span>
<span class="kn">from</span> <span class="nn">.ui</span> <span class="k">import</span> <span class="n">FancyLogger</span>
<span class="kn">from</span> <span class="nn">.utils</span> <span class="k">import</span> <span class="n">get_class_inheritors</span><span class="p">,</span> <span class="n">posix_path</span><span class="p">,</span> <span class="n">check_pkg_resources</span>
<span class="kn">from</span> <span class="nn">.parameters</span> <span class="k">import</span> <span class="n">ParameterContainer</span>
<span class="kn">from</span> <span class="nn">.files</span> <span class="k">import</span> <span class="n">ParameterFile</span>
<span class="kn">from</span> <span class="nn">.keras_utils</span> <span class="k">import</span> <span class="n">BaseDataGenerator</span>
<span class="kn">from</span> <span class="nn">.data</span> <span class="k">import</span> <span class="n">DataProcessor</span><span class="p">,</span> <span class="n">ProcessingChain</span>


<div class="viewcode-block" id="AppCore"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.html#dcase_framework.application_core.AppCore">[docs]</a><span class="k">class</span> <span class="nc">AppCore</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>

<div class="viewcode-block" id="AppCore.__init__"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.html#dcase_framework.application_core.AppCore.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Constructor</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        name : str</span>
<span class="sd">            Application name.</span>
<span class="sd">            Default value &quot;Application&quot;</span>
<span class="sd">        system_desc : str</span>
<span class="sd">            System description.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        system_parameter_set_id : str</span>
<span class="sd">            System parameter set id.</span>
<span class="sd">            Default value &quot;None&quot;</span>
<span class="sd">        setup_label : str</span>
<span class="sd">            Application setup label.</span>
<span class="sd">            Default value &quot;System&quot;</span>
<span class="sd">        params : ParameterContainer</span>
<span class="sd">            Parameter container containing all parameters needed by application.</span>
<span class="sd">        dataset : str or class</span>
<span class="sd">            Dataset, if none given dataset name is taken from parameters &quot;dataset-&gt;parameters-&gt;name&quot;.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        dataset_evaluation_mode : str</span>
<span class="sd">            Dataset evaluation mode, &quot;full&quot; or &quot;folds&quot;. If none given, taken from parameters</span>
<span class="sd">            &quot;dataset-&gt;parameter-&gt;evaluation_mode&quot;.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        show_progress_in_console : bool</span>
<span class="sd">            Show progress in console.</span>
<span class="sd">            Default value &quot;True&quot;</span>
<span class="sd">        log_system_progress : bool</span>
<span class="sd">            Show progress in log.</span>
<span class="sd">            Default value &quot;False&quot;</span>
<span class="sd">        use_ascii_progress_bar : bool</span>
<span class="sd">            Show progress bar using ASCII characters. Use this if your console does not support UTF-8 characters.</span>
<span class="sd">            Default value &quot;False&quot;</span>
<span class="sd">        logger : logging</span>
<span class="sd">            Instance of logging</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        Datasets : dict of Dataset classes</span>
<span class="sd">            Dict of datasets available for application. Dict key is name of the dataset and value link to class</span>
<span class="sd">            inherited from Dataset base class. Given dict is used to update internal dict.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        FeatureExtractor : class inherited from FeatureExtractor</span>
<span class="sd">            Feature extractor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureExtractor&quot;</span>
<span class="sd">        FeatureNormalizer : class inherited from FeatureNormalizer</span>
<span class="sd">            Feature normalizer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureNormalizer&quot;</span>
<span class="sd">        FeatureMasker : class inherited from FeatureMasker</span>
<span class="sd">            Feature masker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureMasker&quot;</span>
<span class="sd">        FeatureContainer : class inherited from FeatureContainer</span>
<span class="sd">            Feature container class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureContainer&quot;</span>
<span class="sd">        FeatureStacker : class inherited from FeatureStacker</span>
<span class="sd">            Feature stacker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureStacker&quot;</span>
<span class="sd">        FeatureAggregator : class inherited from FeatureAggregator</span>
<span class="sd">            Feature aggregate class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureAggregator&quot;</span>
<span class="sd">        DataProcessor : class inherited from DataProcessor</span>
<span class="sd">            DataProcessor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataProcessor&quot;</span>
<span class="sd">        DataSequencer : class inherited from DataSequencer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataSequencer&quot;</span>
<span class="sd">        ProcessingChain : class inherited from ProcessingChain</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;ProcessingChain&quot;</span>
<span class="sd">        Learners: dict of Learner classes</span>
<span class="sd">            Dict of learners available for application. Dict key is method the class implements and value link to</span>
<span class="sd">            class inherited from LearnerContainer base class. Given dict is used to update internal dict.</span>
<span class="sd">        SceneRecognizer : class inherited from SceneRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;SceneRecognizer&quot;</span>
<span class="sd">        EventRecognizer : class inherited from EventRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;EventRecognizer&quot;</span>
<span class="sd">        ui : class inherited from FancyLogger</span>
<span class="sd">            Output formatter class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FancyLogger&quot;</span>
<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            No valid ParameterContainer given.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;logger&#39;</span><span class="p">,</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">))</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;show_progress_in_console&#39;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;log_system_progress&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;use_ascii_progress_bar&#39;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>

        <span class="c1"># Fetch all datasets</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span> <span class="o">=</span> <span class="p">{}</span>

        <span class="k">for</span> <span class="n">dataset_item</span> <span class="ow">in</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">Dataset</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset_item</span><span class="o">.</span><span class="vm">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">dataset_item</span>

        <span class="c1"># Append user specified classes</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">))</span>

        <span class="c1"># Store classes to allow override in the inherited classes</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureExtractor</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureExtractor&#39;</span><span class="p">,</span> <span class="n">FeatureExtractor</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureNormalizer&#39;</span><span class="p">,</span> <span class="n">FeatureNormalizer</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureMasker</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureMasker&#39;</span><span class="p">,</span> <span class="n">FeatureMasker</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureContainer</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureContainer&#39;</span><span class="p">,</span> <span class="n">FeatureContainer</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureStacker</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureStacker&#39;</span><span class="p">,</span> <span class="n">FeatureStacker</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">FeatureAggregator</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;FeatureAggregator&#39;</span><span class="p">,</span> <span class="n">FeatureAggregator</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">DataProcessor</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;DataProcessor&#39;</span><span class="p">,</span> <span class="n">DataProcessor</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">DataSequencer</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;DataSequencer&#39;</span><span class="p">,</span> <span class="n">DataSequencer</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;ProcessingChain&#39;</span><span class="p">,</span> <span class="n">ProcessingChain</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">SceneRecognizer</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;SceneRecognizer&#39;</span><span class="p">,</span> <span class="n">SceneRecognizer</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">EventRecognizer</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;EventRecognizer&#39;</span><span class="p">,</span> <span class="n">EventRecognizer</span><span class="p">)</span>

        <span class="c1"># Fetch all Learners</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="n">learner_list</span> <span class="o">=</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">LearnerContainer</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">learner_item</span> <span class="ow">in</span> <span class="n">learner_list</span><span class="p">:</span>
            <span class="n">learner</span> <span class="o">=</span> <span class="n">learner_item</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">[</span><span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">learner_item</span>

        <span class="c1"># Append user specified Learners</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">))</span>

        <span class="c1"># Fetch all DataGenerators</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="n">data_generator_list</span> <span class="o">=</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">BaseDataGenerator</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">data_generator_item</span> <span class="ow">in</span> <span class="n">data_generator_list</span><span class="p">:</span>
            <span class="n">generator</span> <span class="o">=</span> <span class="n">data_generator_item</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">generator</span><span class="o">.</span><span class="n">method</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span><span class="p">[</span><span class="n">generator</span><span class="o">.</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">data_generator_item</span>

        <span class="c1"># Append user specified DataGenerators</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;DataGenerators&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;DataGenerators&#39;</span><span class="p">))</span>

        <span class="c1"># Parameters</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;params&#39;</span><span class="p">)</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">,</span> <span class="n">ParameterContainer</span><span class="p">):</span>
            <span class="c1"># Parameters are empty or not ParameterContainer</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: No valid ParameterContainer given.&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
            <span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">processed</span><span class="p">:</span>
            <span class="c1"># Process parameters</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">process</span><span class="p">()</span>

        <span class="c1"># Set current dataset</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_dataset</span><span class="p">(</span><span class="n">dataset</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset&#39;</span><span class="p">))</span>

        <span class="c1"># Application meta data</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;name&#39;</span><span class="p">,</span> <span class="s1">&#39;Application&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">system_desc</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;system_desc&#39;</span><span class="p">)</span>

        <span class="c1"># Application setup</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">system_parameter_set_id</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;system_parameter_set_id&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">setup_label</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;setup_label&#39;</span><span class="p">,</span> <span class="s1">&#39;System&#39;</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset_evaluation_mode&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">dataset_evaluation_mode</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset_evaluation_mode&#39;</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">dataset_evaluation_mode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;dataset.parameters.evaluation_mode&#39;</span><span class="p">,</span> <span class="s1">&#39;folds&#39;</span><span class="p">)</span>

        <span class="c1"># Timer class</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span> <span class="o">=</span> <span class="n">Timer</span><span class="p">()</span>

        <span class="c1"># UI</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;ui&#39;</span><span class="p">,</span> <span class="n">FancyLogger</span><span class="p">())</span>

        <span class="c1"># Log application title</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">()</span></div>

    <span class="k">def</span> <span class="nf">_get_dataset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dataset</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get dataset class</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        dataset : class or str</span>
<span class="sd">            Depending variable type:</span>

<span class="sd">            - If str, variable is used to index self.Datasets and initialize class</span>
<span class="sd">            - If instance of Dataset, used as such</span>
<span class="sd">            - If none given, dataset name taken from parameters ( &#39;dataset.parameters.name&#39; )</span>

<span class="sd">            Default value &quot;Non&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        class</span>
<span class="sd">            Dataset class instance</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="c1"># Get dataset container class</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="n">dataset</span><span class="p">:</span>
            <span class="c1"># If not dataset name given, dig name from parameters and use it.</span>
            <span class="n">dataset_class_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;dataset.parameters.name&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">dataset_class_name</span> <span class="ow">and</span> <span class="n">dataset_class_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">:</span>
                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset_class_name</span><span class="p">](</span>
                    <span class="n">data_path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.data&#39;</span><span class="p">),</span>
                    <span class="n">log_system_progress</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">,</span>
                    <span class="n">show_progress_in_console</span><span class="o">=</span><span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                    <span class="n">use_ascii_progress_bar</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">,</span>
                    <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;dataset.parameters&#39;</span><span class="p">))</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: No valid dataset given [</span><span class="si">{dataset}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">dataset</span><span class="o">=</span><span class="n">dataset_class_name</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dataset</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset</span><span class="p">](</span><span class="n">data_path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.data&#39;</span><span class="p">),</span>
                                          <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;dataset.parameters&#39;</span><span class="p">))</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dataset</span><span class="p">,</span> <span class="n">Dataset</span><span class="p">):</span>
            <span class="k">return</span> <span class="n">dataset</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: No valid dataset given [</span><span class="si">{dataset}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">dataset</span><span class="o">=</span><span class="n">dataset</span>
            <span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_get_learner</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="n">method</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;method&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">method</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">:</span>
            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">[</span><span class="n">method</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: No valid learner method given [</span><span class="si">{method}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">method</span><span class="o">=</span><span class="n">method</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_get_active_folds</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get active folds</span>

<span class="sd">        Takes intersection of the folds provided by the dataset class and folds marks in</span>
<span class="sd">        parameters (&#39;dataset.parameters.fold_list&#39;)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        list</span>
<span class="sd">            List of fold ids</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">folds</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">folds</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset_evaluation_mode</span><span class="p">)</span>
        <span class="n">active_fold_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;dataset.parameters.fold_list&#39;</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">active_fold_list</span><span class="p">:</span>
            <span class="n">folds</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">folds</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">active_fold_list</span><span class="p">))</span>
        <span class="k">return</span> <span class="n">folds</span>

    <span class="k">def</span> <span class="nf">show_parameter_set_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">set_list</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;List of datasets available</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        set_list : list of parameter dicts</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>


<span class="sd">        &quot;&quot;&quot;</span>
        <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  Parameter set list</span><span class="se">\n</span><span class="s1">&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_name:&lt;25s}</span><span class="s1"> | </span><span class="si">{description:80s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">set_name</span><span class="o">=</span><span class="s1">&#39;Set Name&#39;</span><span class="p">,</span>
                                                                     <span class="n">description</span><span class="o">=</span><span class="s1">&#39;Description&#39;</span><span class="p">)</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_name:&lt;25s}</span><span class="s1"> + </span><span class="si">{description:80s}</span><span class="s1"> +</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">set_name</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">25</span><span class="p">,</span>
                                                                     <span class="n">description</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="o">*</span><span class="mi">80</span><span class="p">)</span>

        <span class="k">for</span> <span class="n">set_item</span> <span class="ow">in</span> <span class="n">set_list</span><span class="p">:</span>
            <span class="n">set_name</span> <span class="o">=</span> <span class="n">set_item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;set_id&#39;</span><span class="p">)</span>
            <span class="n">description</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">set_item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">))</span> <span class="k">if</span> <span class="n">set_item</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;&#39;</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_name:&lt;25s}</span><span class="s1"> | </span><span class="si">{description:80s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">set_name</span><span class="o">=</span><span class="n">set_name</span><span class="p">,</span>
                                                                         <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>

<div class="viewcode-block" id="AppCore.show_dataset_list"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.show_dataset_list.html#dcase_framework.application_core.AppCore.show_dataset_list">[docs]</a>    <span class="k">def</span> <span class="nf">show_dataset_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;List of datasets available</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  Dataset list</span><span class="se">\n</span><span class="s1">&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{class_name:&lt;45s}</span><span class="s1"> | </span><span class="si">{group:20s}</span><span class="s1"> | </span><span class="si">{valid:5s}</span><span class="s1"> | </span><span class="si">{files:10s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">class_name</span><span class="o">=</span><span class="s1">&#39;Class Name&#39;</span><span class="p">,</span>
                                                                                            <span class="n">group</span><span class="o">=</span><span class="s1">&#39;Group&#39;</span><span class="p">,</span>
                                                                                            <span class="n">valid</span><span class="o">=</span><span class="s1">&#39;Valid&#39;</span><span class="p">,</span>
                                                                                            <span class="n">files</span><span class="o">=</span><span class="s1">&#39;Files&#39;</span><span class="p">)</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{class_name:&lt;45s}</span><span class="s1"> + </span><span class="si">{group:20s}</span><span class="s1"> + </span><span class="si">{valid:5s}</span><span class="s1"> + </span><span class="si">{files:10s}</span><span class="s1"> +</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">class_name</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">45</span><span class="p">,</span>
                                                                                            <span class="n">group</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">,</span>
                                                                                            <span class="n">valid</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">5</span><span class="p">,</span>
                                                                                            <span class="n">files</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">10</span><span class="p">)</span>

        <span class="k">def</span> <span class="nf">get_row</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
            <span class="n">file_count</span> <span class="o">=</span> <span class="mi">0</span>
            <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">meta_container</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
                <span class="n">file_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">meta</span><span class="p">)</span>

            <span class="k">return</span> <span class="s1">&#39;  </span><span class="si">{class_name:&lt;45s}</span><span class="s1"> | </span><span class="si">{group:20s}</span><span class="s1"> | </span><span class="si">{valid:5s}</span><span class="s1"> | </span><span class="si">{files:10s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">class_name</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">group</span><span class="o">=</span><span class="n">data</span><span class="o">.</span><span class="n">dataset_group</span><span class="p">,</span>
                <span class="n">valid</span><span class="o">=</span><span class="s1">&#39;Yes&#39;</span> <span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">check_filelist</span><span class="p">()</span> <span class="k">else</span> <span class="s1">&#39;No&#39;</span><span class="p">,</span>
                <span class="n">files</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">file_count</span><span class="p">)</span> <span class="k">if</span> <span class="n">file_count</span> <span class="k">else</span> <span class="s1">&#39;&#39;</span>
                <span class="p">)</span>

        <span class="k">for</span> <span class="n">dataset_class_name</span><span class="p">,</span> <span class="n">dataset_class</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">):</span>
            <span class="n">d</span> <span class="o">=</span> <span class="n">dataset_class</span><span class="p">(</span><span class="n">data_path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.data&#39;</span><span class="p">))</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="n">get_row</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">output</span><span class="p">)</span></div>

<div class="viewcode-block" id="AppCore.show_parameters"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.show_parameters.html#dcase_framework.application_core.AppCore.show_parameters">[docs]</a>    <span class="k">def</span> <span class="nf">show_parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Show parameters&quot;&quot;&quot;</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">))</span></div>

    <span class="k">def</span> <span class="nf">show_eval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">pass</span>

    <span class="k">def</span> <span class="nf">check_resources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="c1"># Check key libraries</span>
        <span class="n">check_pkg_resources</span><span class="p">(</span><span class="n">package_requirement</span><span class="o">=</span><span class="s1">&#39;numpy&gt;=1.9.2&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
        <span class="n">check_pkg_resources</span><span class="p">(</span><span class="n">package_requirement</span><span class="o">=</span><span class="s1">&#39;scikit-learn&gt;=0.18.1&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
        <span class="n">check_pkg_resources</span><span class="p">(</span><span class="n">package_requirement</span><span class="o">=</span><span class="s1">&#39;keras&gt;=2.0.2&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
        <span class="n">check_pkg_resources</span><span class="p">(</span><span class="n">package_requirement</span><span class="o">=</span><span class="s1">&#39;theano&gt;=0.9.0&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
        <span class="n">check_pkg_resources</span><span class="p">(</span><span class="n">package_requirement</span><span class="o">=</span><span class="s1">&#39;librosa&gt;=0.5.0&#39;</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">_before_initialize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;Initialize [</span><span class="si">{setup_label}</span><span class="s1">][</span><span class="si">{dataset_evaluation_mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">setup_label</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">setup_label</span><span class="p">,</span>
            <span class="n">dataset_evaluation_mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset_evaluation_mode</span><span class="p">)</span>
        <span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_initialize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">())</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AppCore.initialize"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.initialize.html#dcase_framework.application_core.AppCore.initialize">[docs]</a>    <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Initialize application&quot;&quot;&quot;</span>
        <span class="c1"># Check that key libraries are installed with correct versions</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">check_resources</span><span class="p">()</span>

        <span class="c1"># Log information</span>

        <span class="c1"># System information</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;System&#39;</span><span class="p">)</span>
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Name&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">system_desc</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Description&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">system_desc</span><span class="p">,</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">system_parameter_set_id</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Parameter set&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">system_parameter_set_id</span><span class="p">,</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Setup&#39;</span><span class="p">,</span>
                     <span class="n">value</span><span class="o">=</span><span class="s1">&#39;Python[</span><span class="si">{python}</span><span class="s1">], Numpy[</span><span class="si">{numpy}</span><span class="s1">], sklearn[</span><span class="si">{sklearn}</span><span class="s1">], Keras[</span><span class="si">{keras}</span><span class="s1">], Theano[</span><span class="si">{theano}</span><span class="s1">], Librosa[</span><span class="si">{librosa}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                         <span class="n">python</span><span class="o">=</span><span class="n">platform</span><span class="o">.</span><span class="n">python_version</span><span class="p">(),</span>
                         <span class="n">numpy</span><span class="o">=</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">get_distribution</span><span class="p">(</span><span class="s2">&quot;numpy&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">version</span><span class="p">,</span>
                         <span class="n">sklearn</span><span class="o">=</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">get_distribution</span><span class="p">(</span><span class="s2">&quot;scikit-learn&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">version</span><span class="p">,</span>
                         <span class="n">keras</span><span class="o">=</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">get_distribution</span><span class="p">(</span><span class="s2">&quot;keras&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">version</span><span class="p">,</span>
                         <span class="n">theano</span><span class="o">=</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">get_distribution</span><span class="p">(</span><span class="s2">&quot;theano&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">version</span><span class="p">,</span>
                         <span class="n">librosa</span><span class="o">=</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">get_distribution</span><span class="p">(</span><span class="s2">&quot;librosa&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">version</span><span class="p">),</span>
                     <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="c1"># Other information</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Dataset&#39;</span><span class="p">)</span>
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">storage_name</span><span class="p">:</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Name&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">storage_name</span><span class="p">,</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Active folds&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">()),</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.enable&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.challenge_submission_mode&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Recognizer&#39;</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Save path&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer_challenge_output&#39;</span><span class="p">)),</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.enable&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.enable&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Evaluator&#39;</span><span class="p">)</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">data</span><span class="p">(</span><span class="n">field</span><span class="o">=</span><span class="s1">&#39;Save path&#39;</span><span class="p">,</span>
                         <span class="n">value</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">)),</span>
                         <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>

        <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">initialize</span><span class="p">()</span></div>

    <span class="k">def</span> <span class="nf">_before_feature_extraction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;Feature extractor&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_feature_extraction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">(),</span> <span class="n">item_count</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">to_return</span><span class="p">))</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AppCore.feature_extraction"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.feature_extraction.html#dcase_framework.application_core.AppCore.feature_extraction">[docs]</a>    <span class="k">def</span> <span class="nf">feature_extraction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature extraction stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        files : list</span>
<span class="sd">            file list</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing feature files</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">files</span><span class="p">:</span>
            <span class="n">files</span> <span class="o">=</span> <span class="p">{}</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">)):</span>
                    <span class="n">files</span><span class="p">[</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]]</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span>

                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">)):</span>
                    <span class="n">files</span><span class="p">[</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]]</span> <span class="o">=</span> <span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span>

            <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="n">feature_files</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="n">feature_extractor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureExtractor</span><span class="p">(</span><span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> <span class="n">store</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">file_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">tqdm</span><span class="p">(</span><span class="n">files</span><span class="p">,</span>
                                                      <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Extracting features &#39;</span><span class="p">),</span>
                                                      <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                                      <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                                      <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                                      <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                                      <span class="p">)):</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{file_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{file:&lt;30s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Extracting features &#39;</span><span class="p">,</span>
                    <span class="n">file_id</span><span class="o">=</span><span class="n">file_id</span><span class="p">,</span>
                    <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">),</span>
                    <span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                <span class="p">)</span>

            <span class="c1"># Get feature filename</span>
            <span class="n">current_feature_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span><span class="n">audio_file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span>
                                                               <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">))</span>

            <span class="k">if</span> <span class="ow">not</span> <span class="n">filelist_exists</span><span class="p">(</span><span class="n">current_feature_files</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                <span class="n">feature_extractor</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span>
                    <span class="n">audio_file</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">relative_to_absolute_path</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">),</span>
                    <span class="n">extractor_params</span><span class="o">=</span><span class="n">DottedDict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.parameters&#39;</span><span class="p">)),</span>
                    <span class="n">storage_paths</span><span class="o">=</span><span class="n">current_feature_files</span>
                <span class="p">)</span>

            <span class="n">feature_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_feature_files</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">feature_files</span></div>

    <span class="k">def</span> <span class="nf">_before_feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;Feature normalizer&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">())</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AppCore.feature_normalization"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.feature_normalization.html#dcase_framework.application_core.AppCore.feature_normalization">[docs]</a>    <span class="k">def</span> <span class="nf">feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature normalization stage</span>

<span class="sd">        Calculated normalization factors for each evaluation fold based on the training material available.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing normalizers</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="k">pass</span></div>

    <span class="k">def</span> <span class="nf">_before_system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;System training&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">())</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AppCore.system_training"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.system_training.html#dcase_framework.application_core.AppCore.system_training">[docs]</a>    <span class="k">def</span> <span class="nf">system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System training stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Feature normalizer not found.</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="k">pass</span></div>

    <span class="k">def</span> <span class="nf">_before_system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;System testing&#39;</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">())</span>

<div class="viewcode-block" id="AppCore.system_testing"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.system_testing.html#dcase_framework.application_core.AppCore.system_testing">[docs]</a>    <span class="k">def</span> <span class="nf">system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System testing stage</span>

<span class="sd">        If extracted features are not found from disk, they are extracted but not saved.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Model file not found.</span>
<span class="sd">            Audio file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="k">pass</span></div>

    <span class="k">def</span> <span class="nf">_before_system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">section_header</span><span class="p">(</span><span class="s1">&#39;System evaluation [</span><span class="si">{setup_label}</span><span class="s1">][</span><span class="si">{dataset_evaluation_mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">setup_label</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">setup_label</span><span class="p">,</span>
            <span class="n">dataset_evaluation_mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset_evaluation_mode</span><span class="p">)</span>
        <span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>

    <span class="k">def</span> <span class="nf">_after_system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_return</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">to_return</span><span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">foot</span><span class="p">(</span><span class="n">time</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">timer</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span><span class="o">.</span><span class="n">get_string</span><span class="p">())</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AppCore.system_evaluation"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AppCore.system_evaluation.html#dcase_framework.application_core.AppCore.system_evaluation">[docs]</a>    <span class="k">def</span> <span class="nf">system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System evaluation stage.</span>

<span class="sd">        Testing outputs are collected and evaluated.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Result file not found</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">pass</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
    <span class="k">def</span> <span class="nf">model_information</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">pass</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_filename</span><span class="p">(</span><span class="n">audio_file</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get feature filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        audio_file : str</span>
<span class="sd">            audio file name from which the features are extracted</span>
<span class="sd">        path :  str</span>
<span class="sd">            feature path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        feature_filename : str, dict</span>
<span class="sd">            full feature filename or dict of filenames</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">audio_filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_file</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_normalizer_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get normalizer filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            normalizer path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        normalizer_filename : str</span>
<span class="sd">            full normalizer filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">path</span><span class="p">:</span>
                <span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">))</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get model filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            model path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        model_filename : str</span>
<span class="sd">            full model filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;model_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;txt&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get result filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            result path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        result_filename : str</span>
<span class="sd">            full result filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="n">fold</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span></div>


<div class="viewcode-block" id="AcousticSceneClassificationAppCore"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.html#dcase_framework.application_core.AcousticSceneClassificationAppCore">[docs]</a><span class="k">class</span> <span class="nc">AcousticSceneClassificationAppCore</span><span class="p">(</span><span class="n">AppCore</span><span class="p">):</span>
<div class="viewcode-block" id="AcousticSceneClassificationAppCore.__init__"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.html#dcase_framework.application_core.AcousticSceneClassificationAppCore.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Constructor</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        name : str</span>
<span class="sd">            Application name.</span>
<span class="sd">            Default value &quot;Application&quot;</span>
<span class="sd">        setup_label : str</span>
<span class="sd">            Application setup label.</span>
<span class="sd">            Default value &quot;System&quot;</span>
<span class="sd">        params : ParameterContainer</span>
<span class="sd">            Parameter container containing all parameters needed by application.</span>
<span class="sd">        dataset : str or class</span>
<span class="sd">            Dataset, if none given dataset name is taken from parameters &quot;dataset-&gt;parameters-&gt;name&quot;.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        dataset_evaluation_mode : str</span>
<span class="sd">            Dataset evaluation mode, &quot;full&quot; or &quot;folds&quot;. If none given, taken from parameters.</span>
<span class="sd">            &quot;dataset-&gt;parameter-&gt;evaluation_mode&quot;</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        show_progress_in_console : bool</span>
<span class="sd">            Show progress in console.</span>
<span class="sd">            Default value &quot;True&quot;</span>
<span class="sd">        log_system_progress : bool</span>
<span class="sd">            Log progress in console.</span>
<span class="sd">            Default value &quot;False&quot;</span>
<span class="sd">        logger : logging</span>
<span class="sd">            Instance of logging</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        Datasets : dict of Dataset classes</span>
<span class="sd">            Dict of datasets available for application. Dict key is name of the dataset and value link to class</span>
<span class="sd">            inherited from Dataset base class. Given dict is used to update internal dict.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        FeatureExtractor : class inherited from FeatureExtractor</span>
<span class="sd">            Feature extractor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureExtractor&quot;</span>
<span class="sd">        FeatureNormalizer : class inherited from FeatureNormalizer</span>
<span class="sd">            Feature normalizer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureNormalizer&quot;</span>
<span class="sd">        FeatureMasker : class inherited from FeatureMasker</span>
<span class="sd">            Feature masker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureMasker&quot;</span>
<span class="sd">        FeatureContainer : class inherited from FeatureContainer</span>
<span class="sd">            Feature container class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureContainer&quot;</span>
<span class="sd">        FeatureStacker : class inherited from FeatureStacker</span>
<span class="sd">            Feature stacker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureStacker&quot;</span>
<span class="sd">        FeatureAggregator : class inherited from FeatureAggregator</span>
<span class="sd">            Feature aggregate class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureAggregator&quot;</span>
<span class="sd">        DataProcessor : class inherited from DataProcessor</span>
<span class="sd">            DataProcessor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataProcessor&quot;</span>
<span class="sd">        DataSequencer : class inherited from DataSequencer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataSequencer&quot;</span>
<span class="sd">        ProcessingChain : class inherited from ProcessingChain</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;ProcessingChain&quot;</span>
<span class="sd">        Learners: dict of Learner classes</span>
<span class="sd">            Dict of learners available for application. Dict key is method the class implements and value link to</span>
<span class="sd">            class inherited from LearnerContainer base class. Given dict is used to update internal dict.</span>
<span class="sd">        SceneRecognizer : class inherited from SceneRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;SceneRecognizer&quot;</span>
<span class="sd">        EventRecognizer : class inherited from EventRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;EventRecognizer&quot;</span>
<span class="sd">        ui : class inherited from FancyLogger</span>
<span class="sd">            Output formatter class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FancyLogger&quot;</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            No valid ParameterContainer given.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="nb">super</span><span class="p">(</span><span class="n">AcousticSceneClassificationAppCore</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>

        <span class="c1"># Fetch datasets</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span> <span class="o">=</span> <span class="p">{}</span>

        <span class="k">for</span> <span class="n">dataset_item</span> <span class="ow">in</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">AcousticSceneDataset</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset_item</span><span class="o">.</span><span class="vm">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">dataset_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">))</span>

        <span class="c1"># Set current dataset</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_dataset</span><span class="p">(</span><span class="n">dataset</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset&#39;</span><span class="p">))</span>

        <span class="c1"># Fetch all learners</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="n">learner_list</span> <span class="o">=</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">SceneClassifier</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">learner_item</span> <span class="ow">in</span> <span class="n">learner_list</span><span class="p">:</span>
            <span class="n">learner</span> <span class="o">=</span> <span class="n">learner_item</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">[</span><span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">learner_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">))</span></div>

    <span class="k">def</span> <span class="nf">show_eval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>

        <span class="n">eval_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">)</span>

        <span class="n">eval_files</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">eval_path</span><span class="p">):</span>
            <span class="k">if</span> <span class="n">filename</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.yaml&#39;</span><span class="p">):</span>
                <span class="n">eval_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">eval_path</span><span class="p">,</span> <span class="n">filename</span><span class="p">))</span>

        <span class="n">eval_data</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">eval_files</span><span class="p">:</span>
            <span class="n">data</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">ParameterFile</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">))</span>
            <span class="n">set_id</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.set_id&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">set_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="n">params_hash</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters._hash&#39;</span><span class="p">)</span>

            <span class="k">if</span> <span class="n">params_hash</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>

        <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  Evaluated systems</span><span class="se">\n</span><span class="s1">&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;15s}</span><span class="s1"> | </span><span class="si">{accuracy:8s}</span><span class="s1"> | </span><span class="si">{desc:46s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;Set id&#39;</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;Description&#39;</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;Hash&#39;</span><span class="p">,</span>
            <span class="n">accuracy</span><span class="o">=</span><span class="s1">&#39;Accuracy&#39;</span>
        <span class="p">)</span>

        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;15s}</span><span class="s1"> + </span><span class="si">{accuracy:8s}</span><span class="s1"> + </span><span class="si">{desc:46s}</span><span class="s1"> + </span><span class="si">{hash:32s}</span><span class="s1"> +</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">15</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">46</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span>
            <span class="n">accuracy</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="o">*</span><span class="mi">8</span>
        <span class="p">)</span>

        <span class="k">for</span> <span class="n">set_id</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">eval_data</span><span class="o">.</span><span class="n">keys</span><span class="p">())):</span>
            <span class="k">for</span> <span class="n">params_hash</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">data</span> <span class="o">=</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span>
                <span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.description&#39;</span><span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;15s}</span><span class="s1"> | </span><span class="si">{accuracy:&lt;8s}</span><span class="s1"> | </span><span class="si">{desc:46s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">set_id</span><span class="o">=</span><span class="n">set_id</span><span class="p">,</span>
                    <span class="n">desc</span><span class="o">=</span><span class="p">(</span><span class="n">desc</span><span class="p">[:</span><span class="mi">29</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;..&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">29</span> <span class="k">else</span> <span class="n">desc</span><span class="p">,</span>
                    <span class="nb">hash</span><span class="o">=</span><span class="n">params_hash</span><span class="p">,</span>
                    <span class="n">accuracy</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{0:4.2f}</span><span class="s1"> %&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;overall_results.overall.accuracy&#39;</span><span class="p">)</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span>
                <span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AcousticSceneClassificationAppCore.feature_normalization"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization.html#dcase_framework.application_core.AcousticSceneClassificationAppCore.feature_normalization">[docs]</a>    <span class="k">def</span> <span class="nf">feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature normalization stage</span>

<span class="sd">        Calculated normalization factors for each evaluation fold based on the training material available.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing normalizers</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="n">warnings</span><span class="o">.</span><span class="n">filterwarnings</span><span class="p">(</span><span class="s2">&quot;ignore&quot;</span><span class="p">)</span>
        <span class="n">warnings</span><span class="o">.</span><span class="n">simplefilter</span><span class="p">(</span><span class="s2">&quot;ignore&quot;</span><span class="p">,</span> <span class="ne">DeprecationWarning</span><span class="p">)</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.type&#39;</span><span class="p">,</span> <span class="s1">&#39;global&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;global&#39;</span><span class="p">:</span>
            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                 <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                 <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                 <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                 <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                 <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                 <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                                                                                  <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                                  <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">)))</span>

                <span class="n">current_normalizer_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                    <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                    <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="n">method_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">current_normalizer_files</span><span class="p">,</span>
                                       <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0: &gt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Feature method &#39;</span><span class="p">),</span>
                                       <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                       <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                       <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                       <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                       <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">method</span> <span class="ow">in</span> <span class="n">method_progress</span><span class="p">:</span>
                    <span class="n">current_normalizer_file</span> <span class="o">=</span> <span class="n">current_normalizer_files</span><span class="p">[</span><span class="n">method</span><span class="p">]</span>
                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_normalizer_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="n">normalizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span><span class="p">()</span>
                        <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">),</span>
                                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                             <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                             <span class="p">)</span>

                        <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                            <span class="n">feature_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                <span class="n">audio_file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">],</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">,</span> <span class="p">{})[</span><span class="n">method</span><span class="p">]</span>
                            <span class="p">)</span>
                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{file:&lt;30s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                    <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Item&#39;</span><span class="p">,</span>
                                    <span class="n">item_id</span><span class="o">=</span><span class="n">item_id</span><span class="p">,</span>
                                    <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">),</span>
                                    <span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                <span class="p">)</span>

                            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                                <span class="n">feature_stats</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                            <span class="k">else</span><span class="p">:</span>
                                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                    <span class="n">file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span>
                                <span class="p">)</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                            <span class="c1"># Accumulate statistics</span>
                            <span class="n">normalizer</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">feature_stats</span><span class="p">)</span>

                        <span class="c1"># Calculate normalization factors</span>
                        <span class="n">normalizer</span><span class="o">.</span><span class="n">finalize</span><span class="p">()</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_normalizer_file</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AcousticSceneClassificationAppCore.system_training"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training.html#dcase_framework.application_core.AcousticSceneClassificationAppCore.system_training">[docs]</a>    <span class="k">def</span> <span class="nf">system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System training stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Feature normalizer not found.</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
            <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
            <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
            <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
            <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
            <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
        <span class="p">)</span>

        <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                                                                              <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                              <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">)))</span>

            <span class="n">current_model_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">))</span>
            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_model_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                <span class="n">feature_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>

                <span class="c1"># Feature masker</span>
                <span class="n">feature_masker</span> <span class="o">=</span> <span class="kc">None</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.audio_error_handling&#39;</span><span class="p">):</span>
                    <span class="n">feature_masker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureMasker</span><span class="p">(</span>
                        <span class="n">hop_length_seconds</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">)</span>
                    <span class="p">)</span>
                    <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_masker</span><span class="p">)</span>

                <span class="c1"># Feature stacker</span>
                <span class="n">feature_stacker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureStacker</span><span class="p">(</span>
                    <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.stacking_recipe&#39;</span><span class="p">),</span>
                    <span class="n">feature_hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.feature_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                <span class="p">)</span>
                <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_stacker</span><span class="p">)</span>

                <span class="c1"># Feature normalizer</span>
                <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="kc">None</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">):</span>
                    <span class="c1"># Load normalizers</span>
                    <span class="n">feature_normalizer_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">)</span>
                    <span class="p">)</span>

                    <span class="n">normalizer_list</span> <span class="o">=</span> <span class="p">{}</span>
                    <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_normalizer_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_normalizer_filenames</span><span class="p">):</span>
                        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_normalizer_filename</span><span class="p">):</span>
                            <span class="n">normalizer_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                <span class="n">filename</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                            <span class="p">)</span>

                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Feature normalizer not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                <span class="n">file</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                            <span class="p">)</span>

                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                    <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span><span class="p">(</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">normalizer</span><span class="p">(</span>
                        <span class="n">normalizer_list</span><span class="o">=</span><span class="n">normalizer_list</span><span class="p">)</span>
                    <span class="p">)</span>
                    <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_normalizer</span><span class="p">)</span>

                <span class="c1"># Feature aggregator</span>
                <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="kc">None</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.enable&#39;</span><span class="p">):</span>
                    <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureAggregator</span><span class="p">(</span>
                        <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.aggregation_recipe&#39;</span><span class="p">),</span>
                        <span class="n">win_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.win_length_frames&#39;</span><span class="p">),</span>
                        <span class="n">hop_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.hop_length_frames&#39;</span><span class="p">)</span>
                    <span class="p">)</span>
                    <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_aggregator</span><span class="p">)</span>

                <span class="c1"># Data processing chain</span>
                <span class="n">data_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.enable&#39;</span><span class="p">):</span>
                    <span class="n">data_sequencer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataSequencer</span><span class="p">(</span>
                        <span class="n">frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.frames&#39;</span><span class="p">),</span>
                        <span class="n">hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.hop&#39;</span><span class="p">),</span>
                        <span class="n">padding</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.padding&#39;</span><span class="p">),</span>
                        <span class="n">shift_step</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.step&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                        <span class="n">shift_border</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.border&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                        <span class="n">shift_max</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.max&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span>
                            <span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                    <span class="p">)</span>
                    <span class="n">data_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data_sequencer</span><span class="p">)</span>

                <span class="c1"># Data processor</span>
                <span class="n">data_processor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataProcessor</span><span class="p">(</span>
                    <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                    <span class="n">data_processing_chain</span><span class="o">=</span><span class="n">data_processing_chain</span><span class="p">,</span>
                <span class="p">)</span>

                <span class="c1"># Collect training examples</span>
                <span class="n">train_meta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">)</span>
                <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span>
                <span class="n">data_filelist</span> <span class="o">=</span> <span class="p">{}</span>
                <span class="n">annotations</span> <span class="o">=</span> <span class="p">{}</span>

                <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">train_meta</span><span class="o">.</span><span class="n">file_list</span><span class="p">[::</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.file_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)],</span>
                                     <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                     <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                     <span class="p">)</span>

                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                            <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:3s}</span><span class="s1">/</span><span class="si">{total:3s}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Collect data &#39;</span><span class="p">,</span>
                                <span class="n">item_id</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">item_id</span><span class="p">),</span>
                                <span class="n">total</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">)),</span>
                                <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                        <span class="p">)</span>

                    <span class="n">item_progress</span><span class="o">.</span><span class="n">set_postfix</span><span class="p">(</span><span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">])</span>
                    <span class="n">item_progress</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>

                    <span class="c1"># Load features</span>
                    <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                        <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                    <span class="p">)</span>

                    <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">):</span>
                        <span class="c1"># If generator is not used, load features now.</span>

                        <span class="c1"># Do only feature processing here. Leave data processing for learner.</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.audio_error_handling&#39;</span><span class="p">):</span>
                            <span class="n">data_processor</span><span class="o">.</span><span class="n">call_method</span><span class="p">(</span>
                                <span class="n">method_name</span><span class="o">=</span><span class="s1">&#39;set_mask&#39;</span><span class="p">,</span>
                                <span class="n">parameters</span><span class="o">=</span><span class="p">{</span>
                                    <span class="s1">&#39;mask_events&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">file_error_meta</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)</span>
                                <span class="p">}</span>
                            <span class="p">)</span>

                        <span class="n">feature_data</span><span class="p">,</span> <span class="n">feature_length</span> <span class="o">=</span> <span class="n">data_processor</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                            <span class="n">feature_filename_dict</span><span class="o">=</span><span class="n">feature_filenames</span><span class="p">,</span>
                            <span class="n">process_features</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                            <span class="n">process_data</span><span class="o">=</span><span class="kc">False</span>
                        <span class="p">)</span>
                        <span class="n">data</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="n">feature_data</span><span class="p">])</span>

                    <span class="c1"># Inject audio_filename to the features filenames for the raw data generator</span>
                    <span class="n">feature_filenames</span><span class="p">[</span><span class="s1">&#39;_audio_filename&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">audio_filename</span>
                    <span class="n">data_filelist</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">feature_filenames</span>

                    <span class="n">annotations</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">train_meta</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>

                <span class="c1"># Get learner</span>
                <span class="n">learner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span>
                    <span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">),</span>
                    <span class="n">class_labels</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span><span class="p">,</span>
                    <span class="n">data_processor</span><span class="o">=</span><span class="n">data_processor</span><span class="p">,</span>
                    <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                    <span class="n">feature_masker</span><span class="o">=</span><span class="n">feature_masker</span><span class="p">,</span>
                    <span class="n">feature_normalizer</span><span class="o">=</span><span class="n">feature_normalizer</span><span class="p">,</span>
                    <span class="n">feature_stacker</span><span class="o">=</span><span class="n">feature_stacker</span><span class="p">,</span>
                    <span class="n">feature_aggregator</span><span class="o">=</span><span class="n">feature_aggregator</span><span class="p">,</span>
                    <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner&#39;</span><span class="p">),</span>
                    <span class="n">filename</span><span class="o">=</span><span class="n">current_model_file</span><span class="p">,</span>
                    <span class="n">disable_progress_bar</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                    <span class="n">log_progress</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">,</span>
                    <span class="n">data_generators</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                <span class="p">)</span>

                <span class="c1"># Get validation files from dataset</span>
                <span class="n">validation_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">validation_files</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">)</span>

                <span class="c1"># Start learning</span>
                <span class="n">learner</span><span class="o">.</span><span class="n">learn</span><span class="p">(</span>
                    <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span>
                    <span class="n">annotations</span><span class="o">=</span><span class="n">annotations</span><span class="p">,</span>
                    <span class="n">data_filenames</span><span class="o">=</span><span class="n">data_filelist</span><span class="p">,</span>
                    <span class="n">validation_files</span><span class="o">=</span><span class="n">validation_files</span>
                <span class="p">)</span>

                <span class="n">learner</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.show_model_information&#39;</span><span class="p">):</span>
                <span class="c1"># Load class model container</span>
                <span class="n">model_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">))</span>

                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">model_filename</span><span class="p">):</span>
                    <span class="n">model_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span>
                        <span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">)</span>
                    <span class="p">)</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">model_filename</span><span class="p">)</span>

                <span class="k">else</span><span class="p">:</span>
                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Model file not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                        <span class="n">file</span><span class="o">=</span><span class="n">model_filename</span>
                    <span class="p">)</span>

                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                <span class="k">if</span> <span class="s1">&#39;learning_history&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">:</span>
                    <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
                    <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
                    <span class="n">ax</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">111</span><span class="p">)</span>
                    <span class="n">ax1</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">211</span><span class="p">)</span>
                    <span class="n">ax2</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">212</span><span class="p">)</span>

                    <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;top&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                    <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;bottom&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                    <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;left&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                    <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;right&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                    <span class="n">ax</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">labelcolor</span><span class="o">=</span><span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">left</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">)</span>

                    <span class="c1"># Set common labels</span>
                    <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;Epochs&#39;</span><span class="p">)</span>

                    <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy&#39;</span><span class="p">)</span>
                    <span class="k">if</span> <span class="s1">&#39;categorical_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                        <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy / categorical accuracy&#39;</span><span class="p">)</span>
                        <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;categorical_accuracy&#39;</span><span class="p">])</span>
                        <span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;accuracy&#39;</span><span class="p">)</span>
                        <span class="k">if</span> <span class="s1">&#39;val_categorical_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                            <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_categorical_accuracy&#39;</span><span class="p">])</span>
                            <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>

                    <span class="k">if</span> <span class="s1">&#39;loss&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                        <span class="n">ax2</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model loss&#39;</span><span class="p">)</span>
                        <span class="n">ax2</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;loss&#39;</span><span class="p">])</span>
                        <span class="n">ax2</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;loss&#39;</span><span class="p">)</span>
                        <span class="k">if</span> <span class="s1">&#39;val_loss&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                            <span class="n">ax2</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_loss&#39;</span><span class="p">])</span>
                            <span class="n">ax2</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">ax2</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                    <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AcousticSceneClassificationAppCore.system_testing"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing.html#dcase_framework.application_core.AcousticSceneClassificationAppCore.system_testing">[docs]</a>    <span class="k">def</span> <span class="nf">system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System testing stage</span>

<span class="sd">        If extracted features are not found from disk, they are extracted but not saved.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Model file not found.</span>
<span class="sd">            Audio file not found.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
        <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                             <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

        <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                                                                              <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                              <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">)))</span>

            <span class="n">current_result_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">))</span>
            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_result_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_result_file</span><span class="p">)</span>

                <span class="c1"># Load class model container</span>
                <span class="n">model_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span>
                    <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                    <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">model_filename</span><span class="p">):</span>
                    <span class="n">model_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">))</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                        <span class="n">filename</span><span class="o">=</span><span class="n">model_filename</span>
                    <span class="p">)</span>

                <span class="k">else</span><span class="p">:</span>
                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Model file not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                        <span class="n">file</span><span class="o">=</span><span class="n">model_filename</span>
                    <span class="p">)</span>

                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">),</span>
                                     <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Testing &#39;</span><span class="p">),</span>
                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                     <span class="p">)</span>
                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Testing&#39;</span><span class="p">,</span>
                            <span class="n">item_id</span><span class="o">=</span><span class="n">item_id</span><span class="p">,</span>
                            <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">),</span>
                            <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                        <span class="p">)</span>

                    <span class="c1"># Load features</span>
                    <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                        <span class="n">audio_file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">],</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                    <span class="p">)</span>

                    <span class="n">feature_list</span> <span class="o">=</span> <span class="p">{}</span>
                    <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_filenames</span><span class="p">):</span>
                        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                            <span class="n">feature_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                <span class="n">file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span>
                            <span class="p">)</span>

                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">model_container</span><span class="p">,</span> <span class="s1">&#39;data_processor&#39;</span><span class="p">):</span>
                        <span class="c1"># Leave feature and data processing to DataProcessor stored inside the model</span>
                        <span class="n">feature_data</span> <span class="o">=</span> <span class="n">feature_list</span>

                    <span class="k">else</span><span class="p">:</span>
                        <span class="c1"># Backward compatibility mode</span>

                        <span class="c1"># Feature masking</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.audio_error_handling&#39;</span><span class="p">):</span>
                            <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_masker</span><span class="p">:</span>
                                <span class="n">model_container</span><span class="o">.</span><span class="n">feature_masker</span><span class="o">.</span><span class="n">set_mask</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">file_error_meta</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]))</span>
                                <span class="n">feature_repository</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_masker</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                    <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_repository</span>
                                <span class="p">)</span>
                            <span class="k">else</span><span class="p">:</span>
                                <span class="n">feature_repository</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureMasker</span><span class="p">(</span>
                                    <span class="n">hop_length_seconds</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.hop_length_seconds&#39;</span><span class="p">)</span>
                                <span class="p">)</span><span class="o">.</span><span class="n">set_mask</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">file_error_meta</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]))</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                    <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_repository</span>
                                <span class="p">)</span>

                        <span class="c1"># Feature stacking</span>
                        <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                            <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_list</span>
                        <span class="p">)</span>

                        <span class="c1"># Normalize features</span>
                        <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="p">:</span>
                            <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="o">.</span><span class="n">normalize</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                        <span class="c1"># Aggregate features</span>
                        <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="p">:</span>
                            <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="o">.</span><span class="n">process</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                    <span class="c1"># Frame probabilities</span>
                    <span class="n">frame_probabilities</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">feature_data</span><span class="o">=</span><span class="n">feature_data</span><span class="p">)</span>

                    <span class="c1"># Scene recognizer</span>
                    <span class="n">current_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">SceneRecognizer</span><span class="p">(</span>
                        <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer&#39;</span><span class="p">),</span>
                        <span class="n">class_labels</span><span class="o">=</span><span class="n">model_container</span><span class="o">.</span><span class="n">class_labels</span><span class="p">,</span>
                    <span class="p">)</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                        <span class="n">frame_probabilities</span><span class="o">=</span><span class="n">frame_probabilities</span>
                    <span class="p">)</span>

                    <span class="c1"># Store the result</span>
                    <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MetaDataItem</span><span class="p">({</span>
                        <span class="s1">&#39;file&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;scene_label&#39;</span><span class="p">:</span> <span class="n">current_result</span><span class="p">}</span>
                    <span class="p">))</span>

                <span class="c1"># Save testing results</span>
                <span class="n">results</span><span class="o">.</span><span class="n">save</span><span class="p">()</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="AcousticSceneClassificationAppCore.system_evaluation"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation.html#dcase_framework.application_core.AcousticSceneClassificationAppCore.system_evaluation">[docs]</a>    <span class="k">def</span> <span class="nf">system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System evaluation stage.</span>

<span class="sd">        Testing outputs are collected and evaluated.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Result file not found</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">reference_data_present</span><span class="p">:</span>
            <span class="k">return</span> <span class="s1">&#39;  No reference data available for dataset.&#39;</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">scene_metric</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">scene</span><span class="o">.</span><span class="n">SceneClassificationMetrics</span><span class="p">(</span><span class="n">scene_labels</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span><span class="p">)</span>
            <span class="n">results_fold</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                 <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                 <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                 <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                 <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                 <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                 <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="n">scene_metric_fold</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">scene</span><span class="o">.</span><span class="n">SceneClassificationMetrics</span><span class="p">(</span><span class="n">scene_labels</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span><span class="p">)</span>

                <span class="n">estimated_scene_list</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">(</span>
                    <span class="n">filename</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">))</span>
                <span class="p">)</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>

                <span class="n">reference_scene_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">eval</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">reference_scene_list</span><span class="p">:</span>
                    <span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">posix_path</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]))</span>

                <span class="n">scene_metric</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">reference_scene_list</span><span class="o">=</span><span class="n">reference_scene_list</span><span class="p">,</span>
                                      <span class="n">estimated_scene_list</span><span class="o">=</span><span class="n">estimated_scene_list</span><span class="p">)</span>

                <span class="n">scene_metric_fold</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">reference_scene_list</span><span class="o">=</span><span class="n">reference_scene_list</span><span class="p">,</span>
                                           <span class="n">estimated_scene_list</span><span class="o">=</span><span class="n">estimated_scene_list</span><span class="p">)</span>

                <span class="n">results_fold</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scene_metric_fold</span><span class="o">.</span><span class="n">results</span><span class="p">())</span>

            <span class="n">results</span> <span class="o">=</span> <span class="n">scene_metric</span><span class="o">.</span><span class="n">results</span><span class="p">()</span>

            <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  File-wise evaluation, over </span><span class="si">{fold_count:d}</span><span class="s2"> folds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">fold_count</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">())</span>
            <span class="p">)</span>

            <span class="n">fold_labels</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="n">separator</span> <span class="o">=</span> <span class="s1">&#39;     =====================+======+======+==========+  +&#39;</span>
            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results_fold</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                    <span class="n">fold_labels</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">{fold:8s}</span><span class="s2"> |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">))</span>
                    <span class="n">separator</span> <span class="o">+=</span> <span class="s2">&quot;==========+&quot;</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;     </span><span class="si">{scene:20s}</span><span class="s2"> | </span><span class="si">{ref:4s}</span><span class="s2"> : </span><span class="si">{sys:4s}</span><span class="s2"> | </span><span class="si">{acc:8s}</span><span class="s2"> |  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">scene</span><span class="o">=</span><span class="s1">&#39;Scene label&#39;</span><span class="p">,</span>
                <span class="n">ref</span><span class="o">=</span><span class="s1">&#39;Nref&#39;</span><span class="p">,</span>
                <span class="n">sys</span><span class="o">=</span><span class="s1">&#39;Nsys&#39;</span><span class="p">,</span>
                <span class="n">acc</span><span class="o">=</span><span class="s1">&#39;Accuracy&#39;</span><span class="p">)</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="n">fold_labels</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>

            <span class="n">output</span> <span class="o">+=</span> <span class="n">separator</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
            <span class="k">for</span> <span class="n">label_id</span><span class="p">,</span> <span class="n">label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;class_wise&#39;</span><span class="p">])):</span>
                <span class="n">fold_values</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results_fold</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                    <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                        <span class="n">fold_values</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">{value:5.1f}</span><span class="s2"> %  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">value</span><span class="o">=</span><span class="n">results_fold</span><span class="p">[</span><span class="n">fold</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="s1">&#39;class_wise&#39;</span><span class="p">][</span><span class="n">label</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span>
                        <span class="p">)</span>

                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;     </span><span class="si">{label:20s}</span><span class="s2"> | </span><span class="si">{ref:4d}</span><span class="s2"> : </span><span class="si">{sys:4d}</span><span class="s2"> | </span><span class="si">{acc:5.1f}</span><span class="s2"> %  |  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">label</span><span class="o">=</span><span class="n">label</span><span class="p">,</span>
                    <span class="n">ref</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;class_wise&#39;</span><span class="p">][</span><span class="n">label</span><span class="p">][</span><span class="s1">&#39;count&#39;</span><span class="p">][</span><span class="s1">&#39;Nref&#39;</span><span class="p">]),</span>
                    <span class="n">sys</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;class_wise&#39;</span><span class="p">][</span><span class="n">label</span><span class="p">][</span><span class="s1">&#39;count&#39;</span><span class="p">][</span><span class="s1">&#39;Nsys&#39;</span><span class="p">]),</span>
                    <span class="n">acc</span><span class="o">=</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;class_wise&#39;</span><span class="p">][</span><span class="n">label</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="n">fold_values</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>

            <span class="n">output</span> <span class="o">+=</span> <span class="n">separator</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
            <span class="n">fold_values</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results_fold</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                    <span class="n">fold_values</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">{:5.1f}</span><span class="s2"> %  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">results_fold</span><span class="p">[</span><span class="n">fold</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="s1">&#39;overall&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>

            <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;     </span><span class="si">{label:20s}</span><span class="s2"> | </span><span class="si">{ref:4d}</span><span class="s2"> : </span><span class="si">{sys:4d}</span><span class="s2"> | </span><span class="si">{acc:5.1f}</span><span class="s2"> %  |  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">label</span><span class="o">=</span><span class="s1">&#39;Overall accuracy&#39;</span><span class="p">,</span>
                <span class="n">ref</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;overall&#39;</span><span class="p">][</span><span class="s1">&#39;count&#39;</span><span class="p">][</span><span class="s1">&#39;Nref&#39;</span><span class="p">]),</span>
                <span class="n">sys</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;overall&#39;</span><span class="p">][</span><span class="s1">&#39;count&#39;</span><span class="p">][</span><span class="s1">&#39;Nsys&#39;</span><span class="p">]),</span>
                <span class="n">acc</span><span class="o">=</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;overall&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>
            <span class="n">output</span> <span class="o">+=</span> <span class="n">fold_values</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>

            <span class="n">fold_values</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results_fold</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                    <span class="n">fold_values</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="si">{:5.1f}</span><span class="s2"> %  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">results_fold</span><span class="p">[</span><span class="n">fold</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="s1">&#39;class_wise_average&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>

            <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;     </span><span class="si">{label:20s}</span><span class="s2"> | </span><span class="si">{ref:4s}</span><span class="s2"> : </span><span class="si">{sys:4s}</span><span class="s2"> | </span><span class="si">{acc:5.1f}</span><span class="s2"> %  |  |&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">label</span><span class="o">=</span><span class="s1">&#39;Average class acc.&#39;</span><span class="p">,</span>
                <span class="n">ref</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">,</span>
                <span class="n">sys</span><span class="o">=</span><span class="s1">&#39; &#39;</span><span class="p">,</span>
                <span class="n">acc</span><span class="o">=</span><span class="n">results</span><span class="p">[</span><span class="s1">&#39;class_wise_average&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">][</span><span class="s1">&#39;accuracy&#39;</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>

            <span class="n">output</span> <span class="o">+=</span> <span class="n">fold_values</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.enable&#39;</span><span class="p">):</span>
                <span class="n">filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.filename&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">dataset_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">storage_name</span><span class="p">,</span>
                    <span class="n">parameter_set</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;active_set&#39;</span><span class="p">],</span>
                    <span class="n">parameter_hash</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;_hash&#39;</span><span class="p">]</span>
                <span class="p">)</span>

                <span class="n">output_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">),</span> <span class="n">filename</span><span class="p">)</span>

                <span class="n">output_data</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;overall_results&#39;</span><span class="p">:</span> <span class="n">results</span><span class="p">,</span>
                    <span class="s1">&#39;fold_results&#39;</span><span class="p">:</span> <span class="n">results_fold</span><span class="p">,</span>
                    <span class="s1">&#39;parameters&#39;</span><span class="p">:</span> <span class="nb">dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
                <span class="p">}</span>
                <span class="n">ParameterFile</span><span class="p">(</span><span class="n">output_data</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="n">output_file</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>
            <span class="k">return</span> <span class="n">output</span></div></div>


<div class="viewcode-block" id="SoundEventAppCore"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.html#dcase_framework.application_core.SoundEventAppCore">[docs]</a><span class="k">class</span> <span class="nc">SoundEventAppCore</span><span class="p">(</span><span class="n">AppCore</span><span class="p">):</span>
<div class="viewcode-block" id="SoundEventAppCore.__init__"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.html#dcase_framework.application_core.SoundEventAppCore.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Constructor</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        name : str</span>
<span class="sd">            Application name.</span>
<span class="sd">            Default value &quot;Application&quot;</span>
<span class="sd">        setup_label : str</span>
<span class="sd">            Application setup label.</span>
<span class="sd">            Default value &quot;System&quot;</span>
<span class="sd">        params : ParameterContainer</span>
<span class="sd">            Parameter container containing all parameters needed by application.</span>
<span class="sd">        dataset : str or class</span>
<span class="sd">            Dataset, if none given dataset name is taken from parameters &quot;dataset-&gt;parameters-&gt;name&quot;</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        dataset_evaluation_mode : str</span>
<span class="sd">            Dataset evaluation mode, &quot;full&quot; or &quot;folds&quot;. If none given, taken from parameters</span>
<span class="sd">            &quot;dataset-&gt;parameter-&gt;evaluation_mode&quot;.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        show_progress_in_console : bool</span>
<span class="sd">            Show progress in console.</span>
<span class="sd">            Default value &quot;True&quot;</span>
<span class="sd">        log_system_progress : bool</span>
<span class="sd">            Log progress in console.</span>
<span class="sd">            Default value &quot;False&quot;</span>
<span class="sd">        logger : logging</span>
<span class="sd">            Instance of logging</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        Datasets : dict of Dataset classes</span>
<span class="sd">            Dict of datasets available for application. Dict key is name of the dataset and value link to class</span>
<span class="sd">            inherited from Dataset base class. Given dict is used to update internal dict.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        FeatureExtractor : class inherited from FeatureExtractor</span>
<span class="sd">            Feature extractor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureExtractor&quot;</span>
<span class="sd">        FeatureNormalizer : class inherited from FeatureNormalizer</span>
<span class="sd">            Feature normalizer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureNormalizer&quot;</span>
<span class="sd">        FeatureMasker : class inherited from FeatureMasker</span>
<span class="sd">            Feature masker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureMasker&quot;</span>
<span class="sd">        FeatureContainer : class inherited from FeatureContainer</span>
<span class="sd">            Feature container class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureContainer&quot;</span>
<span class="sd">        FeatureStacker : class inherited from FeatureStacker</span>
<span class="sd">            Feature stacker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureStacker&quot;</span>
<span class="sd">        FeatureAggregator : class inherited from FeatureAggregator</span>
<span class="sd">            Feature aggregate class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureAggregator&quot;</span>
<span class="sd">        DataProcessor : class inherited from DataProcessor</span>
<span class="sd">            DataProcessor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataProcessor&quot;</span>
<span class="sd">        DataSequencer : class inherited from DataSequencer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataSequencer&quot;</span>
<span class="sd">        ProcessingChain : class inherited from ProcessingChain</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;ProcessingChain&quot;</span>
<span class="sd">        Learners: dict of Learner classes</span>
<span class="sd">            Dict of learners available for application. Dict key is method the class implements and value link to</span>
<span class="sd">            class inherited from LearnerContainer base class. Given dict is used to update internal dict.</span>
<span class="sd">        SceneRecognizer : class inherited from SceneRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;SceneRecognizer&quot;</span>
<span class="sd">        EventRecognizer : class inherited from EventRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;EventRecognizer&quot;</span>
<span class="sd">        ui : class inherited from FancyLogger</span>
<span class="sd">            Output formatter class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FancyLogger&quot;</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            No valid ParameterContainer given.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="nb">super</span><span class="p">(</span><span class="n">SoundEventAppCore</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>

        <span class="c1"># Fetch datasets</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span> <span class="o">=</span> <span class="p">{}</span>

        <span class="k">for</span> <span class="n">dataset_item</span> <span class="ow">in</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">SoundEventDataset</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset_item</span><span class="o">.</span><span class="vm">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">dataset_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">))</span>

        <span class="c1"># Set current dataset</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_dataset</span><span class="p">(</span><span class="n">dataset</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset&#39;</span><span class="p">))</span>

        <span class="c1"># Fetch all learners</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="n">learner_list</span> <span class="o">=</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">EventDetector</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">learner_item</span> <span class="ow">in</span> <span class="n">learner_list</span><span class="p">:</span>
            <span class="n">learner</span> <span class="o">=</span> <span class="n">learner_item</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">[</span><span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">learner_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">))</span></div>

    <span class="k">def</span> <span class="nf">show_eval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>

        <span class="n">eval_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">)</span>

        <span class="n">eval_files</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">eval_path</span><span class="p">):</span>
            <span class="k">if</span> <span class="n">filename</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.yaml&#39;</span><span class="p">):</span>
                <span class="n">eval_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">eval_path</span><span class="p">,</span> <span class="n">filename</span><span class="p">))</span>

        <span class="n">eval_data</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">eval_files</span><span class="p">:</span>
            <span class="n">data</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">ParameterFile</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">))</span>
            <span class="n">set_id</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.set_id&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">set_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="n">params_hash</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters._hash&#39;</span><span class="p">)</span>

            <span class="k">if</span> <span class="n">params_hash</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>

        <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  Evaluated systems</span><span class="se">\n</span><span class="s1">&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> | </span><span class="si">{er:8s}</span><span class="s1"> | </span><span class="si">{f1:8s}</span><span class="s1"> | </span><span class="si">{desc:32s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;Set id&#39;</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;Description&#39;</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;Hash&#39;</span><span class="p">,</span>
            <span class="n">er</span><span class="o">=</span><span class="s1">&#39;Seg ER&#39;</span><span class="p">,</span>
            <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;Seg F1&#39;</span>
        <span class="p">)</span>

        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> + </span><span class="si">{er:8s}</span><span class="s1"> + </span><span class="si">{f1:8s}</span><span class="s1"> + </span><span class="si">{desc:32s}</span><span class="s1"> + </span><span class="si">{hash:32s}</span><span class="s1"> +</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span>
            <span class="n">er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">8</span><span class="p">,</span>
            <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">8</span>
        <span class="p">)</span>

        <span class="k">for</span> <span class="n">set_id</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">eval_data</span><span class="o">.</span><span class="n">keys</span><span class="p">())):</span>
            <span class="k">for</span> <span class="n">params_hash</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">data</span> <span class="o">=</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span>
                <span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.description&#39;</span><span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> | </span><span class="si">{er:&lt;8s}</span><span class="s1"> | </span><span class="si">{f1:&lt;8s}</span><span class="s1"> | </span><span class="si">{desc:32s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">set_id</span><span class="o">=</span><span class="n">set_id</span><span class="p">,</span>
                    <span class="n">desc</span><span class="o">=</span><span class="p">(</span><span class="n">desc</span><span class="p">[:</span><span class="mi">29</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;..&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">29</span> <span class="k">else</span> <span class="n">desc</span><span class="p">,</span>
                    <span class="nb">hash</span><span class="o">=</span><span class="n">params_hash</span><span class="p">,</span>
                    <span class="n">er</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{0:2.2f}</span><span class="s1"> %&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;average.segment_based_er&#39;</span><span class="p">)),</span>
                    <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{0:4.2f}</span><span class="s1"> %&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;average.segment_based_fscore&#39;</span><span class="p">))</span>
                <span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="SoundEventAppCore.feature_normalization"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.feature_normalization.html#dcase_framework.application_core.SoundEventAppCore.feature_normalization">[docs]</a>    <span class="k">def</span> <span class="nf">feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature normalization stage</span>

<span class="sd">        Calculated normalization factors for each evaluation fold based on the training material available.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing normalizers</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown scene_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">and</span>
           <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.method&#39;</span><span class="p">,</span> <span class="s1">&#39;global&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;global&#39;</span><span class="p">):</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-dependent&#39;</span><span class="p">:</span>

                <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                     <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                     <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">))</span>
                        <span class="p">)</span>

                    <span class="n">scene_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span>
                    <span class="c1"># Select only active scenes</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.active_scenes&#39;</span><span class="p">):</span>
                        <span class="n">scene_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
                            <span class="nb">set</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.active_scenes&#39;</span><span class="p">)</span>
                            <span class="p">)</span>
                        <span class="p">)</span>

                    <span class="k">for</span> <span class="n">scene_label</span> <span class="ow">in</span> <span class="n">scene_labels</span><span class="p">:</span>
                        <span class="n">current_normalizer_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">),</span>
                            <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span>
                        <span class="p">)</span>

                        <span class="n">method_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">current_normalizer_files</span><span class="p">,</span>
                                               <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0: &gt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Feature method &#39;</span><span class="p">),</span>
                                               <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                               <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                               <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                               <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                               <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">method</span> <span class="ow">in</span> <span class="n">method_progress</span><span class="p">:</span>
                            <span class="n">current_normalizer_file</span> <span class="o">=</span> <span class="n">current_normalizer_files</span><span class="p">[</span><span class="n">method</span><span class="p">]</span>
                            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_normalizer_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                                <span class="n">normalizer</span> <span class="o">=</span> <span class="n">FeatureNormalizer</span><span class="p">()</span>
                                <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">)</span><span class="o">.</span><span class="n">file_list</span><span class="p">,</span>
                                                     <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                                     <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                                    <span class="n">feature_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                        <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">,</span> <span class="p">{})[</span><span class="n">method</span><span class="p">]</span>
                                    <span class="p">)</span>

                                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                            <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{file:&lt;30s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                                <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Item&#39;</span><span class="p">,</span>
                                                <span class="n">item_id</span><span class="o">=</span><span class="n">item_id</span><span class="p">,</span>
                                                <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">),</span>
                                                <span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                            <span class="p">)</span>

                                    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                                        <span class="n">feature_stats</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                                    <span class="k">else</span><span class="p">:</span>
                                        <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                            <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                            <span class="n">file</span><span class="o">=</span><span class="n">audio_filename</span>
                                        <span class="p">)</span>

                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                        <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                                    <span class="c1"># Accumulate statistics</span>
                                    <span class="n">normalizer</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">feature_stats</span><span class="p">)</span>

                                <span class="c1"># Calculate normalization factors</span>
                                <span class="n">normalizer</span><span class="o">.</span><span class="n">finalize</span><span class="p">()</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_normalizer_file</span><span class="p">)</span>

            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-independent&#39;</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Scene handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.scene_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">else</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown scene handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.scene_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="SoundEventAppCore.system_training"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_training.html#dcase_framework.application_core.SoundEventAppCore.system_training">[docs]</a>    <span class="k">def</span> <span class="nf">system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System training stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown scene_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Feature normalizer not found.</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-dependent&#39;</span><span class="p">:</span>
            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
            <span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">))</span>
                    <span class="p">)</span>

                <span class="n">scene_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span>
                <span class="c1"># Select only active scenes</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.active_scenes&#39;</span><span class="p">):</span>
                    <span class="n">scene_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
                        <span class="nb">set</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span>
                            <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.active_scenes&#39;</span><span class="p">)</span>
                        <span class="p">)</span>
                    <span class="p">)</span>

                <span class="n">scene_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span>
                    <span class="n">scene_labels</span><span class="p">,</span>
                    <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Scene &#39;</span><span class="p">),</span>
                    <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                    <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                    <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                    <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                    <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                <span class="p">)</span>

                <span class="k">for</span> <span class="n">scene_label</span> <span class="ow">in</span> <span class="n">scene_progress</span><span class="p">:</span>
                    <span class="n">current_model_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">),</span>
                        <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span>
                    <span class="p">)</span>

                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_model_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="n">feature_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>

                        <span class="c1"># Feature stacker</span>
                        <span class="n">feature_stacker</span> <span class="o">=</span> <span class="n">FeatureStacker</span><span class="p">(</span>
                            <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.stacking_recipe&#39;</span><span class="p">),</span>
                            <span class="n">feature_hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.feature_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                        <span class="p">)</span>
                        <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_stacker</span><span class="p">)</span>

                        <span class="c1"># Feature normalizer</span>
                        <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="kc">None</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">):</span>
                            <span class="c1"># Load normalizers</span>
                            <span class="n">feature_normalizer_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                                <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">),</span>
                                <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span>
                            <span class="p">)</span>

                            <span class="n">normalizer_list</span> <span class="o">=</span> <span class="p">{}</span>
                            <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_normalizer_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_normalizer_filenames</span><span class="p">):</span>
                                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_normalizer_filename</span><span class="p">):</span>
                                    <span class="n">normalizer_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureNormalizer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                        <span class="n">filename</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                                    <span class="p">)</span>

                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Feature normalizer not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                        <span class="n">file</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                                    <span class="p">)</span>

                                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                            <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span><span class="p">(</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">normalizer</span><span class="p">(</span>
                                <span class="n">normalizer_list</span><span class="o">=</span><span class="n">normalizer_list</span><span class="p">)</span>
                            <span class="p">)</span>
                            <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_normalizer</span><span class="p">)</span>

                        <span class="c1"># Feature aggregator</span>
                        <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="kc">None</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.enable&#39;</span><span class="p">):</span>
                            <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="n">FeatureAggregator</span><span class="p">(</span>
                                <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.aggregation_recipe&#39;</span><span class="p">),</span>
                                <span class="n">win_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.win_length_frames&#39;</span><span class="p">),</span>
                                <span class="n">hop_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.hop_length_frames&#39;</span><span class="p">)</span>
                            <span class="p">)</span>
                            <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_aggregator</span><span class="p">)</span>

                        <span class="c1"># Data processing chain</span>
                        <span class="n">data_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.enable&#39;</span><span class="p">):</span>
                            <span class="n">data_sequencer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataSequencer</span><span class="p">(</span>
                                <span class="n">frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.frames&#39;</span><span class="p">),</span>
                                <span class="n">hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.hop&#39;</span><span class="p">),</span>
                                <span class="n">padding</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.padding&#39;</span><span class="p">),</span>
                                <span class="n">shift_step</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.step&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                                <span class="n">shift_border</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.border&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                                <span class="n">shift_max</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.max&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                            <span class="p">)</span>
                            <span class="n">data_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data_sequencer</span><span class="p">)</span>

                        <span class="c1"># Data processor</span>
                        <span class="n">data_processor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataProcessor</span><span class="p">(</span>
                            <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                            <span class="n">data_processing_chain</span><span class="o">=</span><span class="n">data_processing_chain</span><span class="p">,</span>
                        <span class="p">)</span>

                        <span class="c1"># Collect training examples</span>
                        <span class="n">train_meta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">)</span>
                        <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span>
                        <span class="n">data_filelist</span> <span class="o">=</span> <span class="p">{}</span>
                        <span class="n">annotations</span> <span class="o">=</span> <span class="p">{}</span>

                        <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">train_meta</span><span class="o">.</span><span class="n">file_list</span><span class="p">[::</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.file_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)],</span>
                                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                             <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                    <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:3s}</span><span class="s1">/</span><span class="si">{total:3s}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Collect data &#39;</span><span class="p">,</span>
                                        <span class="n">item_id</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">item_id</span><span class="p">),</span>
                                        <span class="n">total</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">)),</span>
                                        <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                    <span class="p">)</span>

                            <span class="n">item_progress</span><span class="o">.</span><span class="n">set_postfix</span><span class="p">(</span><span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">])</span>
                            <span class="n">item_progress</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>

                            <span class="c1"># Get feature filenames</span>
                            <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">):</span>
                                <span class="c1"># If generator is not used, load features now.</span>
                                <span class="c1"># Do only feature processing here. Leave data processing for learner.</span>

                                <span class="n">feature_data</span><span class="p">,</span> <span class="n">feature_length</span> <span class="o">=</span> <span class="n">data_processor</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                    <span class="n">feature_filename_dict</span><span class="o">=</span><span class="n">feature_filenames</span><span class="p">,</span>
                                    <span class="n">process_features</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                                    <span class="n">process_data</span><span class="o">=</span><span class="kc">False</span>
                                <span class="p">)</span>
                                <span class="n">data</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="n">feature_data</span><span class="p">])</span>

                            <span class="c1"># Inject audio_filename to the features filenames for the raw data generator</span>
                            <span class="n">feature_filenames</span><span class="p">[</span><span class="s1">&#39;_audio_filename&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">audio_filename</span>
                            <span class="n">data_filelist</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">feature_filenames</span>

                            <span class="n">annotations</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">train_meta</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">)</span>

                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)</span>

                        <span class="c1"># Get learner</span>
                        <span class="n">learner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span>
                            <span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">),</span>
                            <span class="n">class_labels</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span><span class="p">(</span><span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">),</span>
                            <span class="n">data_processor</span><span class="o">=</span><span class="n">data_processor</span><span class="p">,</span>
                            <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                            <span class="n">feature_normalizer</span><span class="o">=</span><span class="n">feature_normalizer</span><span class="p">,</span>
                            <span class="n">feature_stacker</span><span class="o">=</span><span class="n">feature_stacker</span><span class="p">,</span>
                            <span class="n">feature_aggregator</span><span class="o">=</span><span class="n">feature_aggregator</span><span class="p">,</span>
                            <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner&#39;</span><span class="p">),</span>
                            <span class="n">filename</span><span class="o">=</span><span class="n">current_model_file</span><span class="p">,</span>
                            <span class="n">disable_progress_bar</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                            <span class="n">log_progress</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">,</span>
                            <span class="n">data_generators</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                        <span class="p">)</span>

                        <span class="c1"># Get validation files from dataset</span>
                        <span class="n">validation_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">validation_files</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">)</span>

                        <span class="c1"># Start learning</span>
                        <span class="n">learner</span><span class="o">.</span><span class="n">learn</span><span class="p">(</span>
                            <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span>
                            <span class="n">annotations</span><span class="o">=</span><span class="n">annotations</span><span class="p">,</span>
                            <span class="n">data_filenames</span><span class="o">=</span><span class="n">data_filelist</span><span class="p">,</span>
                            <span class="n">validation_files</span><span class="o">=</span><span class="n">validation_files</span>
                        <span class="p">)</span>

                        <span class="n">learner</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-independent&#39;</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Scene handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.scene_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown scene handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.scene_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="SoundEventAppCore.system_testing"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_testing.html#dcase_framework.application_core.SoundEventAppCore.system_testing">[docs]</a>    <span class="k">def</span> <span class="nf">system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System testing stage</span>

<span class="sd">        If extracted features are not found from disk, they are extracted but not saved.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown scene_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Model file not found.</span>
<span class="sd">            Audio file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-dependent&#39;</span><span class="p">:</span>

            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                 <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                 <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                 <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                 <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                 <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                 <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">))</span>
                    <span class="p">)</span>

                <span class="n">scene_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span>
                <span class="c1"># Select only active scenes</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.active_scenes&#39;</span><span class="p">):</span>
                    <span class="n">scene_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
                        <span class="nb">set</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span>
                            <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.active_scenes&#39;</span><span class="p">)</span>
                        <span class="p">)</span>
                    <span class="p">)</span>

                <span class="n">scene_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">,</span>
                                      <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Scene &#39;</span><span class="p">),</span>
                                      <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                      <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                      <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                      <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                      <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">scene_label</span> <span class="ow">in</span> <span class="n">scene_progress</span><span class="p">:</span>
                    <span class="n">current_result_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">),</span>
                        <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span>
                    <span class="p">)</span>

                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_result_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_result_file</span><span class="p">)</span>

                        <span class="c1"># Load class model container</span>
                        <span class="n">model_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                  <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">),</span>
                                                                  <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span>
                                                                  <span class="p">)</span>

                        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">model_filename</span><span class="p">):</span>
                            <span class="n">model_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">))</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                <span class="n">filename</span><span class="o">=</span><span class="n">model_filename</span><span class="p">)</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Model file not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                <span class="n">file</span><span class="o">=</span><span class="n">model_filename</span>
                            <span class="p">)</span>

                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                        <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">)</span><span class="o">.</span><span class="n">file_list</span><span class="p">,</span>
                                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Testing &#39;</span><span class="p">),</span>
                                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                             <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                             <span class="p">)</span>
                        <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                    <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Testing&#39;</span><span class="p">,</span>
                                        <span class="n">item_id</span><span class="o">=</span><span class="n">item_id</span><span class="p">,</span>
                                        <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">),</span>
                                        <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                    <span class="p">)</span>

                            <span class="c1"># Load features</span>
                            <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="n">feature_list</span> <span class="o">=</span> <span class="p">{}</span>
                            <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_filenames</span><span class="p">):</span>
                                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                                    <span class="n">feature_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                        <span class="n">file</span><span class="o">=</span><span class="n">audio_filename</span>
                                    <span class="p">)</span>

                                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                            <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">model_container</span><span class="p">,</span> <span class="s1">&#39;data_processor&#39;</span><span class="p">):</span>
                                <span class="c1"># Leave feature and data processing to DataProcessor stored inside the model</span>
                                <span class="n">feature_data</span> <span class="o">=</span> <span class="n">feature_list</span>

                            <span class="k">else</span><span class="p">:</span>
                                <span class="c1"># Backward compatibility mode</span>
                                <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                    <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_list</span>
                                <span class="p">)</span>

                                <span class="c1"># Normalize features</span>
                                <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="p">:</span>
                                    <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="o">.</span><span class="n">normalize</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                                <span class="c1"># Aggregate features</span>
                                <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="p">:</span>
                                    <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="o">.</span><span class="n">process</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                            <span class="c1"># Frame probabilities</span>
                            <span class="n">frame_probabilities</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span>
                                <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_data</span><span class="p">,</span>
                            <span class="p">)</span>

                            <span class="c1"># Event recognizer</span>
                            <span class="n">current_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EventRecognizer</span><span class="p">(</span>
                                <span class="n">hop_length_seconds</span><span class="o">=</span><span class="n">model_container</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;hop_length_seconds&#39;</span><span class="p">),</span>
                                <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer&#39;</span><span class="p">),</span>
                                <span class="n">class_labels</span><span class="o">=</span><span class="n">model_container</span><span class="o">.</span><span class="n">class_labels</span>
                            <span class="p">)</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                <span class="n">frame_probabilities</span><span class="o">=</span><span class="n">frame_probabilities</span>
                            <span class="p">)</span>

                            <span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">current_result</span><span class="p">:</span>
                                <span class="n">event</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)</span>
                                <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>

                        <span class="c1"># Save testing results</span>
                        <span class="n">results</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-independent&#39;</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Scene handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.scene_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown scene handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.scene_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="SoundEventAppCore.system_evaluation"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.SoundEventAppCore.system_evaluation.html#dcase_framework.application_core.SoundEventAppCore.system_evaluation">[docs]</a>    <span class="k">def</span> <span class="nf">system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System evaluation stage.</span>

<span class="sd">        Testing outputs are collected and evaluated.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Result file not found</span>

<span class="sd">        &quot;&quot;&quot;</span>
        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">reference_data_present</span><span class="p">:</span>
            <span class="k">return</span> <span class="s1">&#39;  No reference data available for dataset.&#39;</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-dependent&#39;</span><span class="p">:</span>
                <span class="n">overall_metrics_per_scene</span> <span class="o">=</span> <span class="p">{}</span>

                <span class="n">scene_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">scene_labels</span>

                <span class="c1"># Select only active scenes</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.active_scenes&#39;</span><span class="p">):</span>
                    <span class="n">scene_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
                        <span class="nb">set</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span>
                            <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.active_scenes&#39;</span><span class="p">)</span>
                        <span class="p">)</span>
                    <span class="p">)</span>

                <span class="k">for</span> <span class="n">scene_id</span><span class="p">,</span> <span class="n">scene_label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">):</span>
                    <span class="k">if</span> <span class="n">scene_label</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">overall_metrics_per_scene</span><span class="p">:</span>
                        <span class="n">overall_metrics_per_scene</span><span class="p">[</span><span class="n">scene_label</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>

                    <span class="n">segment_based_metric</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">sound_event</span><span class="o">.</span><span class="n">SegmentBasedMetrics</span><span class="p">(</span>
                        <span class="n">event_label_list</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span><span class="p">(</span><span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">),</span>
                        <span class="n">time_resolution</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
                    <span class="p">)</span>

                    <span class="n">event_based_metric</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">sound_event</span><span class="o">.</span><span class="n">EventBasedMetrics</span><span class="p">(</span>
                        <span class="n">event_label_list</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span><span class="p">(</span><span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">),</span>
                        <span class="n">evaluate_onset</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                        <span class="n">evaluate_offset</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                        <span class="n">t_collar</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
                        <span class="n">percentage_of_length</span><span class="o">=</span><span class="mf">0.5</span>
                    <span class="p">)</span>

                    <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                        <span class="n">result_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                    <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">,</span>
                                                                    <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">))</span>

                        <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">result_filename</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">file_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">)</span><span class="o">.</span><span class="n">file_list</span><span class="p">):</span>

                            <span class="c1"># Select only row which are from current file and contains only detected event</span>
                            <span class="n">current_file_results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span>
                            <span class="k">for</span> <span class="n">result_item</span> <span class="ow">in</span> <span class="n">results</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
                                    <span class="n">filename</span><span class="o">=</span><span class="n">posix_path</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">))</span>
                            <span class="p">):</span>
                                <span class="k">if</span> <span class="s1">&#39;event_label&#39;</span> <span class="ow">in</span> <span class="n">result_item</span> <span class="ow">and</span> <span class="n">result_item</span><span class="o">.</span><span class="n">event_label</span><span class="p">:</span>
                                    <span class="n">current_file_results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result_item</span><span class="p">)</span>

                            <span class="n">meta</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span>
                            <span class="k">for</span> <span class="n">meta_item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">file_meta</span><span class="p">(</span>
                                    <span class="n">filename</span><span class="o">=</span><span class="n">posix_path</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">))</span>
                            <span class="p">):</span>
                                <span class="k">if</span> <span class="s1">&#39;event_label&#39;</span> <span class="ow">in</span> <span class="n">meta_item</span> <span class="ow">and</span> <span class="n">meta_item</span><span class="o">.</span><span class="n">event_label</span><span class="p">:</span>
                                    <span class="n">meta</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">meta_item</span><span class="p">)</span>

                            <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span>
                                <span class="n">reference_event_list</span><span class="o">=</span><span class="n">meta</span><span class="p">,</span>
                                <span class="n">estimated_event_list</span><span class="o">=</span><span class="n">current_file_results</span>
                            <span class="p">)</span>

                            <span class="n">event_based_metric</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span>
                                <span class="n">reference_event_list</span><span class="o">=</span><span class="n">meta</span><span class="p">,</span>
                                <span class="n">estimated_event_list</span><span class="o">=</span><span class="n">current_file_results</span>
                            <span class="p">)</span>

                    <span class="n">overall_metrics_per_scene</span><span class="p">[</span><span class="n">scene_label</span><span class="p">][</span><span class="s1">&#39;segment_based_metrics&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">results</span><span class="p">()</span>
                    <span class="n">overall_metrics_per_scene</span><span class="p">[</span><span class="n">scene_label</span><span class="p">][</span><span class="s1">&#39;event_based_metrics&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">event_based_metric</span><span class="o">.</span><span class="n">results</span><span class="p">()</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.show_details&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Scene [</span><span class="si">{scene}</span><span class="s2">], Evaluation over </span><span class="si">{folds:d}</span><span class="s2"> folds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">scene</span><span class="o">=</span><span class="n">scene_label</span><span class="p">,</span>
                            <span class="n">folds</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">fold_count</span>
                        <span class="p">)</span>

                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="se">\n</span><span class="s2">&quot;</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">result_report_overall</span><span class="p">()</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">result_report_class_wise</span><span class="p">()</span>
                <span class="n">overall_metrics_per_scene</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="p">)</span>

                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Overall metrics </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  =============== </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:7s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> | </span><span class="si">{event_based_er:7s}</span><span class="s2"> | </span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;Event label&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;Seg. F1&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;Seg. ER&#39;</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;Evt. F1&#39;</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;Evt. ER&#39;</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> + </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{segment_based_er:7s}</span><span class="s2"> + </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{event_based_er:7s}</span><span class="s2"> + </span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">17</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">avg</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;segment_based_er&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;event_based_fscore&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;event_based_er&#39;</span><span class="p">:</span> <span class="p">[],</span>
                <span class="p">}</span>
                <span class="k">for</span> <span class="n">scene_id</span><span class="p">,</span> <span class="n">scene_label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">scene_labels</span><span class="p">):</span>
                    <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{scene_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_er:&lt;7s}</span><span class="s2"> | </span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">scene_label</span><span class="o">=</span><span class="n">scene_label</span><span class="p">,</span>
                        <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.segment_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">),</span>
                        <span class="n">segment_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.segment_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">)),</span>
                        <span class="n">event_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">),</span>
                        <span class="n">event_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">)),</span>
                    <span class="p">)</span>

                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.segment_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.segment_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">))</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_scene</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">scene_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">))</span>

                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{scene_label:&lt;17s}</span><span class="s2"> + </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{segment_based_er:7s}</span><span class="s2"> + </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{event_based_er:7s}</span><span class="s2"> + </span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">scene_label</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">17</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{scene_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_er:&lt;7s}</span><span class="s2"> | </span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">scene_label</span><span class="o">=</span><span class="s1">&#39;Average&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">])),</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">])),</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">])),</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">])),</span>
                <span class="p">)</span>

            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.scene_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;scene-independent&#39;</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Scene handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.scene_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">else</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown scene handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.scene_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.enable&#39;</span><span class="p">):</span>
                <span class="n">filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.filename&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">dataset_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">storage_name</span><span class="p">,</span>
                    <span class="n">parameter_set</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;active_set&#39;</span><span class="p">],</span>
                    <span class="n">parameter_hash</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;_hash&#39;</span><span class="p">]</span>
                <span class="p">)</span>

                <span class="n">output_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">),</span> <span class="n">filename</span><span class="p">)</span>

                <span class="n">output_data</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;overall_metrics_per_scene&#39;</span><span class="p">:</span> <span class="n">overall_metrics_per_scene</span><span class="p">,</span>
                    <span class="s1">&#39;average&#39;</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;segment_based_er&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;event_based_fscore&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;event_based_er&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">]),</span>
                    <span class="p">},</span>
                    <span class="s1">&#39;parameters&#39;</span><span class="p">:</span> <span class="nb">dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
                <span class="p">}</span>
                <span class="n">ParameterFile</span><span class="p">(</span><span class="n">output_data</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="n">output_file</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

            <span class="k">return</span> <span class="n">output</span></div>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_filename</span><span class="p">(</span><span class="n">audio_file</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get feature filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        audio_file : str</span>
<span class="sd">            audio file name from which the features are extracted</span>
<span class="sd">        path :  str</span>
<span class="sd">            feature path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        feature_filename : str, dict</span>
<span class="sd">            full feature filename or dict of filenames</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">audio_filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_file</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;sequence_&#39;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;sequence_&#39;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_normalizer_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get normalizer filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            normalizer path</span>
<span class="sd">        scene_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        normalizer_filename : str</span>
<span class="sd">            full normalizer filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">path</span><span class="p">:</span>
                <span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">))</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get model filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            model path</span>
<span class="sd">        scene_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        model_filename : str</span>
<span class="sd">            full model filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;model_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">scene_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;txt&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get result filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            result path</span>
<span class="sd">        scene_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        result_filename : str</span>
<span class="sd">            full result filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="n">fold</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results&#39;</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">scene_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span></div>


<div class="viewcode-block" id="BinarySoundEventAppCore"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.html#dcase_framework.application_core.BinarySoundEventAppCore">[docs]</a><span class="k">class</span> <span class="nc">BinarySoundEventAppCore</span><span class="p">(</span><span class="n">SoundEventAppCore</span><span class="p">):</span>
    <span class="k">def</span> <span class="nf">show_eval</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>

        <span class="n">eval_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">)</span>

        <span class="n">eval_files</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">eval_path</span><span class="p">):</span>
            <span class="k">if</span> <span class="n">filename</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.yaml&#39;</span><span class="p">):</span>
                <span class="n">eval_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">eval_path</span><span class="p">,</span> <span class="n">filename</span><span class="p">))</span>

        <span class="n">eval_data</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">eval_files</span><span class="p">:</span>
            <span class="n">data</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">ParameterFile</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">))</span>
            <span class="n">set_id</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.set_id&#39;</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">set_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="n">params_hash</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters._hash&#39;</span><span class="p">)</span>

            <span class="k">if</span> <span class="n">params_hash</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>

        <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  Evaluated systems</span><span class="se">\n</span><span class="s1">&#39;</span>
        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> | </span><span class="si">{er:8s}</span><span class="s1"> | </span><span class="si">{f1:8s}</span><span class="s1"> | </span><span class="si">{desc:32s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;Set id&#39;</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;Description&#39;</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;Hash&#39;</span><span class="p">,</span>
            <span class="n">er</span><span class="o">=</span><span class="s1">&#39;Evt ER&#39;</span><span class="p">,</span>
            <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;Evt F1&#39;</span>
        <span class="p">)</span>

        <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> + </span><span class="si">{er:8s}</span><span class="s1"> + </span><span class="si">{f1:8s}</span><span class="s1"> + </span><span class="si">{desc:32s}</span><span class="s1"> + </span><span class="si">{hash:32s}</span><span class="s1"> +</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
            <span class="n">set_id</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">20</span><span class="p">,</span>
            <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span>
            <span class="nb">hash</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">32</span><span class="p">,</span>
            <span class="n">er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">8</span><span class="p">,</span>
            <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">8</span>
        <span class="p">)</span>

        <span class="k">for</span> <span class="n">set_id</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">eval_data</span><span class="o">.</span><span class="n">keys</span><span class="p">())):</span>
            <span class="k">for</span> <span class="n">params_hash</span> <span class="ow">in</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">]:</span>
                <span class="n">data</span> <span class="o">=</span> <span class="n">eval_data</span><span class="p">[</span><span class="n">set_id</span><span class="p">][</span><span class="n">params_hash</span><span class="p">]</span>
                <span class="n">desc</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;parameters.description&#39;</span><span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s1">&#39;  </span><span class="si">{set_id:&lt;20s}</span><span class="s1"> | </span><span class="si">{er:&lt;8s}</span><span class="s1"> | </span><span class="si">{f1:&lt;8s}</span><span class="s1"> | </span><span class="si">{desc:32s}</span><span class="s1"> | </span><span class="si">{hash:32s}</span><span class="s1"> |</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">set_id</span><span class="o">=</span><span class="n">set_id</span><span class="p">,</span>
                    <span class="n">desc</span><span class="o">=</span><span class="p">(</span><span class="n">desc</span><span class="p">[:</span><span class="mi">29</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;..&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">29</span> <span class="k">else</span> <span class="n">desc</span><span class="p">,</span>
                    <span class="nb">hash</span><span class="o">=</span><span class="n">params_hash</span><span class="p">,</span>
                    <span class="n">er</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{0:2.2f}</span><span class="s1"> %&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;average.event_based_er&#39;</span><span class="p">)),</span>
                    <span class="n">f1</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{0:4.2f}</span><span class="s1"> %&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;average.event_based_fscore&#39;</span><span class="p">))</span>
                <span class="p">)</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="BinarySoundEventAppCore.feature_extraction"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction.html#dcase_framework.application_core.BinarySoundEventAppCore.feature_extraction">[docs]</a>    <span class="k">def</span> <span class="nf">feature_extraction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature extraction stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        files : list</span>
<span class="sd">            file list</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing feature files</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">files</span><span class="p">:</span>
            <span class="n">files</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span><span class="p">:</span>
                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                    <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)):</span>
                        <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
                            <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])</span>
                    <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)):</span>
                        <span class="k">if</span> <span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
                            <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])</span>
            <span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">files</span><span class="p">)</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="n">feature_files</span> <span class="o">=</span> <span class="p">[]</span>
        <span class="n">feature_extractor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureExtractor</span><span class="p">(</span><span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> <span class="n">store</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">file_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">tqdm</span><span class="p">(</span><span class="n">files</span><span class="p">,</span>
                                                      <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Extracting features &#39;</span><span class="p">),</span>
                                                      <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                                      <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                                      <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                                      <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)):</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{file_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{file:&lt;30s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Extracting features &#39;</span><span class="p">,</span>
                    <span class="n">file_id</span><span class="o">=</span><span class="n">file_id</span><span class="p">,</span>
                    <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">files</span><span class="p">),</span>
                    <span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                <span class="p">)</span>

            <span class="c1"># Get feature filename</span>
            <span class="n">current_feature_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                <span class="n">audio_file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span>
                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="k">if</span> <span class="ow">not</span> <span class="n">filelist_exists</span><span class="p">(</span><span class="n">current_feature_files</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                <span class="n">feature_extractor</span><span class="o">.</span><span class="n">extract</span><span class="p">(</span>
                    <span class="n">audio_file</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">relative_to_absolute_path</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">),</span>
                    <span class="n">extractor_params</span><span class="o">=</span><span class="n">DottedDict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_extractor.parameters&#39;</span><span class="p">)),</span>
                    <span class="n">storage_paths</span><span class="o">=</span><span class="n">current_feature_files</span>
                <span class="p">)</span>

            <span class="n">feature_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_feature_files</span><span class="p">)</span>
        <span class="k">return</span> <span class="n">feature_files</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="BinarySoundEventAppCore.feature_normalization"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization.html#dcase_framework.application_core.BinarySoundEventAppCore.feature_normalization">[docs]</a>    <span class="k">def</span> <span class="nf">feature_normalization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Feature normalization stage</span>

<span class="sd">        Calculated normalization factors for each evaluation fold based on the training material available.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing normalizers</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown scene_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">and</span>
           <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.method&#39;</span><span class="p">,</span> <span class="s1">&#39;global&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;global&#39;</span><span class="p">):</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-dependent&#39;</span><span class="p">:</span>

                <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                     <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                     <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">))</span>
                        <span class="p">)</span>

                    <span class="n">event_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span>
                    <span class="c1"># Select only active events</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.active_events&#39;</span><span class="p">):</span>
                        <span class="n">event_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span>
                            <span class="nb">set</span><span class="p">(</span><span class="n">event_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.active_events&#39;</span><span class="p">)</span>
                            <span class="p">)</span>
                        <span class="p">)</span>

                    <span class="k">for</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="n">event_labels</span><span class="p">:</span>
                        <span class="n">current_normalizer_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">),</span>
                            <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span>
                        <span class="p">)</span>

                        <span class="n">method_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">current_normalizer_files</span><span class="p">,</span>
                                               <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0: &gt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Feature method &#39;</span><span class="p">),</span>
                                               <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                               <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                               <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                               <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                               <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">method</span> <span class="ow">in</span> <span class="n">method_progress</span><span class="p">:</span>
                            <span class="n">current_normalizer_file</span> <span class="o">=</span> <span class="n">current_normalizer_files</span><span class="p">[</span><span class="n">method</span><span class="p">]</span>
                            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_normalizer_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                                <span class="n">normalizer</span> <span class="o">=</span> <span class="n">FeatureNormalizer</span><span class="p">()</span>
                                <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)</span><span class="o">.</span><span class="n">file_list</span><span class="p">,</span>
                                                     <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                                     <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                                     <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                                     <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                                     <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                                     <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                                                     <span class="p">)</span>

                                <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                                    <span class="n">feature_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                        <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">,</span> <span class="p">{})[</span><span class="n">method</span><span class="p">]</span>
                                    <span class="p">)</span>

                                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                            <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">] </span><span class="si">{file:&lt;30s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                                <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Item&#39;</span><span class="p">,</span>
                                                <span class="n">item_id</span><span class="o">=</span><span class="n">item_id</span><span class="p">,</span>
                                                <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">),</span>
                                                <span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                            <span class="p">)</span>

                                    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                                        <span class="n">feature_stats</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                                    <span class="k">else</span><span class="p">:</span>
                                        <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                            <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                            <span class="n">file</span><span class="o">=</span><span class="n">audio_filename</span>
                                        <span class="p">)</span>

                                        <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                        <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                                    <span class="c1"># Accumulate statistics</span>
                                    <span class="n">normalizer</span><span class="o">.</span><span class="n">accumulate</span><span class="p">(</span><span class="n">feature_stats</span><span class="p">)</span>

                                <span class="c1"># Calculate normalization factors</span>
                                <span class="n">normalizer</span><span class="o">.</span><span class="n">finalize</span><span class="p">()</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_normalizer_file</span><span class="p">)</span>
            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-independent&#39;</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Event handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.event_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">else</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown event handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.event_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="BinarySoundEventAppCore.system_training"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_training.html#dcase_framework.application_core.BinarySoundEventAppCore.system_training">[docs]</a>    <span class="k">def</span> <span class="nf">system_training</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System training stage</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>

<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown event_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Feature normalizer not found.</span>
<span class="sd">            Feature file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-dependent&#39;</span><span class="p">:</span>
            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;           </span><span class="si">{0:&lt;15s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
            <span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">))</span>
                    <span class="p">)</span>

                <span class="n">event_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span>
                <span class="c1"># Select only active events</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.active_events&#39;</span><span class="p">):</span>
                    <span class="n">event_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">event_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.active_events&#39;</span><span class="p">)))</span>

                <span class="n">event_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span>
                    <span class="n">event_labels</span><span class="p">,</span>
                    <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Event &#39;</span><span class="p">),</span>
                    <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                    <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                    <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                    <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                    <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span>
                <span class="p">)</span>

                <span class="k">for</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="n">event_progress</span><span class="p">:</span>
                    <span class="n">current_model_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">),</span>
                        <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span>
                    <span class="p">)</span>

                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_model_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="n">feature_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>

                        <span class="c1"># Feature stacker</span>
                        <span class="n">feature_stacker</span> <span class="o">=</span> <span class="n">FeatureStacker</span><span class="p">(</span>
                            <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.stacking_recipe&#39;</span><span class="p">),</span>
                            <span class="n">feature_hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_stacker.feature_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
                        <span class="p">)</span>
                        <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_stacker</span><span class="p">)</span>

                        <span class="c1"># Feature normalizer</span>
                        <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="kc">None</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_normalizer.enable&#39;</span><span class="p">):</span>
                            <span class="c1"># Load normalizers</span>
                            <span class="n">feature_normalizer_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_normalizer_filename</span><span class="p">(</span>
                                <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_normalizer&#39;</span><span class="p">),</span>
                                <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span>
                            <span class="p">)</span>

                            <span class="n">normalizer_list</span> <span class="o">=</span> <span class="p">{}</span>
                            <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_normalizer_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_normalizer_filenames</span><span class="p">):</span>
                                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_normalizer_filename</span><span class="p">):</span>
                                    <span class="n">normalizer_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureNormalizer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                        <span class="n">filename</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                                    <span class="p">)</span>

                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Feature normalizer not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                        <span class="n">file</span><span class="o">=</span><span class="n">feature_normalizer_filename</span>
                                    <span class="p">)</span>

                                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                            <span class="n">feature_normalizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FeatureNormalizer</span><span class="p">(</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">normalizer</span><span class="p">(</span>
                                <span class="n">normalizer_list</span><span class="o">=</span><span class="n">normalizer_list</span><span class="p">)</span>
                            <span class="p">)</span>
                            <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_normalizer</span><span class="p">)</span>

                        <span class="c1"># Feature aggregator</span>
                        <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="kc">None</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.enable&#39;</span><span class="p">):</span>
                            <span class="n">feature_aggregator</span> <span class="o">=</span> <span class="n">FeatureAggregator</span><span class="p">(</span>
                                <span class="n">recipe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.aggregation_recipe&#39;</span><span class="p">),</span>
                                <span class="n">win_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.win_length_frames&#39;</span><span class="p">),</span>
                                <span class="n">hop_length_frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;feature_aggregator.hop_length_frames&#39;</span><span class="p">)</span>
                            <span class="p">)</span>
                            <span class="n">feature_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">feature_aggregator</span><span class="p">)</span>

                        <span class="c1"># Data processing chain</span>
                        <span class="n">data_processing_chain</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ProcessingChain</span><span class="p">()</span>
                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.enable&#39;</span><span class="p">):</span>
                            <span class="n">data_sequencer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataSequencer</span><span class="p">(</span>
                                <span class="n">frames</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.frames&#39;</span><span class="p">),</span>
                                <span class="n">hop</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.hop&#39;</span><span class="p">),</span>
                                <span class="n">padding</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.input_sequencer.padding&#39;</span><span class="p">),</span>
                                <span class="n">shift_step</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.step&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                                <span class="n">shift_border</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.border&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                                <span class="n">shift_max</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.max&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.temporal_shifter.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                            <span class="p">)</span>
                            <span class="n">data_processing_chain</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data_sequencer</span><span class="p">)</span>

                        <span class="c1"># Data processor</span>
                        <span class="n">data_processor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">DataProcessor</span><span class="p">(</span>
                            <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                            <span class="n">data_processing_chain</span><span class="o">=</span><span class="n">data_processing_chain</span><span class="p">,</span>
                        <span class="p">)</span>

                        <span class="c1"># Collect training examples</span>
                        <span class="n">train_meta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)</span>
                        <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span>
                        <span class="n">data_filelist</span> <span class="o">=</span> <span class="p">{}</span>
                        <span class="n">annotations</span> <span class="o">=</span> <span class="p">{}</span>

                        <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">train_meta</span><span class="o">.</span><span class="n">file_list</span><span class="p">[::</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.file_hop&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)],</span>
                                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Collect data &#39;</span><span class="p">),</span>
                                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                             <span class="n">bar_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{l_bar}{bar}</span><span class="s1">| </span><span class="si">{n_fmt}</span><span class="s1">/</span><span class="si">{total_fmt}</span><span class="s1"> &#39;</span><span class="p">,</span>
                                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                        <span class="c1"># Collect learning examples</span>
                        <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                    <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:3s}</span><span class="s1">/</span><span class="si">{total:3s}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Collect data &#39;</span><span class="p">,</span>
                                        <span class="n">item_id</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">item_id</span><span class="p">),</span>
                                        <span class="n">total</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">)),</span>
                                        <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                    <span class="p">)</span>

                            <span class="n">item_progress</span><span class="o">.</span><span class="n">set_postfix</span><span class="p">(</span><span class="n">file</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">])</span>
                            <span class="n">item_progress</span><span class="o">.</span><span class="n">update</span><span class="p">()</span>

                            <span class="c1"># Get feature filenames</span>
                            <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                <span class="n">audio_file</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">):</span>
                                <span class="c1"># If generator is not used, load features now.</span>
                                <span class="c1"># Do only feature processing here. Leave data processing for learner.</span>
                                <span class="n">feature_data</span><span class="p">,</span> <span class="n">feature_length</span> <span class="o">=</span> <span class="n">data_processor</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                    <span class="n">feature_filename_dict</span><span class="o">=</span><span class="n">feature_filenames</span><span class="p">,</span>
                                    <span class="n">process_features</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                                    <span class="n">process_data</span><span class="o">=</span><span class="kc">False</span>
                                <span class="p">)</span>
                                <span class="n">data</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">(</span><span class="n">features</span><span class="o">=</span><span class="p">[</span><span class="n">feature_data</span><span class="p">])</span>

                            <span class="c1"># Inject audio_filename to the features filenames for the raw data generator</span>
                            <span class="n">feature_filenames</span><span class="p">[</span><span class="s1">&#39;_audio_filename&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">audio_filename</span>
                            <span class="n">data_filelist</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">feature_filenames</span>

                            <span class="n">annotations</span><span class="p">[</span><span class="n">audio_filename</span><span class="p">]</span> <span class="o">=</span> <span class="n">train_meta</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">audio_filename</span><span class="p">)</span>

                        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">)</span>

                        <span class="c1"># Get learner</span>
                        <span class="n">learner</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span>
                            <span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">),</span>
                            <span class="n">class_labels</span><span class="o">=</span><span class="p">[</span><span class="n">event_label</span><span class="p">],</span>
                            <span class="n">data_processor</span><span class="o">=</span><span class="n">data_processor</span><span class="p">,</span>
                            <span class="n">feature_processing_chain</span><span class="o">=</span><span class="n">feature_processing_chain</span><span class="p">,</span>
                            <span class="n">feature_normalizer</span><span class="o">=</span><span class="n">feature_normalizer</span><span class="p">,</span>
                            <span class="n">feature_stacker</span><span class="o">=</span><span class="n">feature_stacker</span><span class="p">,</span>
                            <span class="n">feature_aggregator</span><span class="o">=</span><span class="n">feature_aggregator</span><span class="p">,</span>
                            <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner&#39;</span><span class="p">),</span>
                            <span class="n">filename</span><span class="o">=</span><span class="n">current_model_file</span><span class="p">,</span>
                            <span class="n">disable_progress_bar</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                            <span class="n">log_progress</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">,</span>
                            <span class="n">data_generators</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">DataGenerators</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.parameters.generator.enable&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
                        <span class="p">)</span>

                        <span class="c1"># Get validation files from dataset</span>
                        <span class="n">validation_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">validation_files</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)</span>

                        <span class="c1"># Start learning</span>
                        <span class="n">learner</span><span class="o">.</span><span class="n">learn</span><span class="p">(</span>
                            <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span>
                            <span class="n">annotations</span><span class="o">=</span><span class="n">annotations</span><span class="p">,</span>
                            <span class="n">data_filenames</span><span class="o">=</span><span class="n">data_filelist</span><span class="p">,</span>
                            <span class="n">validation_files</span><span class="o">=</span><span class="n">validation_files</span>
                        <span class="p">)</span>

                        <span class="c1"># Save model</span>
                        <span class="n">learner</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.show_model_information&#39;</span><span class="p">):</span>
                        <span class="c1"># Load class model container</span>
                        <span class="n">model_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                  <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">),</span>
                                                                  <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)</span>

                        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">model_filename</span><span class="p">):</span>
                            <span class="n">model_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">))</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                <span class="n">filename</span><span class="o">=</span><span class="n">model_filename</span>
                            <span class="p">)</span>

                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Model file not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                <span class="n">file</span><span class="o">=</span><span class="n">model_filename</span>
                            <span class="p">)</span>

                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                        <span class="k">if</span> <span class="s1">&#39;learning_history&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">:</span>
                            <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
                            <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
                            <span class="n">ax</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">111</span><span class="p">)</span>
                            <span class="n">ax1</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">211</span><span class="p">)</span>
                            <span class="n">ax2</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">add_subplot</span><span class="p">(</span><span class="mi">212</span><span class="p">)</span>

                            <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;top&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                            <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;bottom&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                            <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;left&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                            <span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;right&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
                            <span class="n">ax</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">labelcolor</span><span class="o">=</span><span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">bottom</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">left</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="s1">&#39;off&#39;</span><span class="p">)</span>

                            <span class="c1"># Set common labels</span>
                            <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;Epochs&#39;</span><span class="p">)</span>

                            <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy&#39;</span><span class="p">)</span>
                            <span class="k">if</span> <span class="s1">&#39;fmeasure&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy / fmeasure&#39;</span><span class="p">)</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;fmeasure&#39;</span><span class="p">])</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;fmeasure&#39;</span><span class="p">)</span>
                                <span class="k">if</span> <span class="s1">&#39;val_fmeasure&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_fmeasure&#39;</span><span class="p">])</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                            <span class="k">elif</span> <span class="s1">&#39;binary_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy / binary_accuracy&#39;</span><span class="p">)</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;binary_accuracy&#39;</span><span class="p">])</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;binary_accuracy&#39;</span><span class="p">)</span>
                                <span class="k">if</span> <span class="s1">&#39;val_binary_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_binary_accuracy&#39;</span><span class="p">])</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                            <span class="k">elif</span> <span class="s1">&#39;categorical_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model accuracy / categorical_accuracy&#39;</span><span class="p">)</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;categorical_accuracy&#39;</span><span class="p">])</span>
                                <span class="n">ax1</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;categorical_accuracy&#39;</span><span class="p">)</span>
                                <span class="k">if</span> <span class="s1">&#39;val_categorical_accuracy&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_categorical_accuracy&#39;</span><span class="p">])</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">ax1</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>

                            <span class="k">if</span> <span class="s1">&#39;loss&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                <span class="n">ax2</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;model loss&#39;</span><span class="p">)</span>
                                <span class="n">ax2</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;loss&#39;</span><span class="p">])</span>
                                <span class="n">ax2</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;loss&#39;</span><span class="p">)</span>
                                <span class="k">if</span> <span class="s1">&#39;val_loss&#39;</span> <span class="ow">in</span> <span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">]:</span>
                                    <span class="n">ax2</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">model_container</span><span class="p">[</span><span class="s1">&#39;learning_history&#39;</span><span class="p">][</span><span class="s1">&#39;val_loss&#39;</span><span class="p">])</span>
                                    <span class="n">ax2</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">,</span> <span class="s1">&#39;validation&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">ax2</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="s1">&#39;train&#39;</span><span class="p">],</span> <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
                            <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>

        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-independent&#39;</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Event handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.event_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown event handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.event_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="BinarySoundEventAppCore.system_testing"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_testing.html#dcase_framework.application_core.BinarySoundEventAppCore.system_testing">[docs]</a>    <span class="k">def</span> <span class="nf">system_testing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">single_file_per_fold</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System testing stage</span>

<span class="sd">        If extracted features are not found from disk, they are extracted but not saved.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        overwrite : bool</span>
<span class="sd">            overwrite existing models</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        single_file_per_fold : bool</span>
<span class="sd">            Produce single output file, otherwise produce one result file per target event.</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            Unknown event_handling mode</span>
<span class="sd">        IOError:</span>
<span class="sd">            Model file not found.</span>
<span class="sd">            Audio file not found.</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="n">overwrite</span><span class="p">:</span>
            <span class="n">overwrite</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;general.overwrite&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>

        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-dependent&#39;</span><span class="p">:</span>

            <span class="n">fold_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">(),</span>
                                 <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Fold &#39;</span><span class="p">),</span>
                                 <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                 <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                 <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                 <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                 <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

            <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="n">fold_progress</span><span class="p">:</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{fold:d}</span><span class="s1">/</span><span class="si">{total:d}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s1">&#39;Fold&#39;</span><span class="p">,</span>
                                                                                  <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                                                                  <span class="n">total</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">fold_progress</span><span class="p">)))</span>

                <span class="n">event_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span>
                <span class="c1"># Select only active events</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.active_events&#39;</span><span class="p">):</span>
                    <span class="n">event_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">event_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.active_events&#39;</span><span class="p">)))</span>

                <span class="n">event_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="n">event_labels</span><span class="p">,</span>
                                      <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Event &#39;</span><span class="p">),</span>
                                      <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                      <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                      <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                                      <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                      <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                <span class="k">if</span> <span class="n">single_file_per_fold</span><span class="p">:</span>
                    <span class="n">current_result_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span>
                        <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                        <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">)</span>
                    <span class="p">)</span>
                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_result_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_result_file</span><span class="p">)</span>

                <span class="k">for</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="n">event_progress</span><span class="p">:</span>
                    <span class="k">if</span> <span class="ow">not</span> <span class="n">single_file_per_fold</span><span class="p">:</span>
                        <span class="n">current_result_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">),</span>
                            <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span>
                        <span class="p">)</span>
                        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_result_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                            <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">current_result_file</span><span class="p">)</span>

                    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">current_result_file</span><span class="p">)</span> <span class="ow">or</span> <span class="n">overwrite</span><span class="p">:</span>
                        <span class="c1"># Load class model container</span>
                        <span class="n">model_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_model_filename</span><span class="p">(</span>
                            <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                            <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.learner&#39;</span><span class="p">),</span>
                            <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span>
                        <span class="p">)</span>

                        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">model_filename</span><span class="p">):</span>
                            <span class="n">model_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_learner</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;learner.method&#39;</span><span class="p">))</span><span class="o">.</span><span class="n">load</span><span class="p">(</span>
                                <span class="n">filename</span><span class="o">=</span><span class="n">model_filename</span><span class="p">)</span>
                        <span class="k">else</span><span class="p">:</span>
                            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Model file not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                <span class="n">file</span><span class="o">=</span><span class="n">model_filename</span>
                            <span class="p">)</span>

                            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                            <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                        <span class="n">item_progress</span> <span class="o">=</span> <span class="n">tqdm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">),</span>
                                             <span class="n">desc</span><span class="o">=</span><span class="s2">&quot;           </span><span class="si">{0: &gt;15s}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s1">&#39;Testing &#39;</span><span class="p">),</span>
                                             <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span>
                                             <span class="n">leave</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                                             <span class="n">disable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">disable_progress_bar</span><span class="p">,</span>
                                             <span class="n">ascii</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ascii_progress_bar</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">item_progress</span><span class="p">):</span>
                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log_system_progress</span><span class="p">:</span>
                                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span>
                                    <span class="s1">&#39;  </span><span class="si">{title:&lt;15s}</span><span class="s1"> [</span><span class="si">{item_id:3s}</span><span class="s1">/</span><span class="si">{total:3s}</span><span class="s1">] </span><span class="si">{item:&lt;20s}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">title</span><span class="o">=</span><span class="s1">&#39;Testing&#39;</span><span class="p">,</span>
                                        <span class="n">item_id</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">item_id</span><span class="p">),</span>
                                        <span class="n">total</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{:d}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">item_progress</span><span class="p">)),</span>
                                        <span class="n">item</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
                                    <span class="p">)</span>

                            <span class="c1"># Load features</span>
                            <span class="n">feature_filenames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_feature_filename</span><span class="p">(</span>
                                <span class="n">audio_file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">],</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.feature_extractor&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="n">feature_list</span> <span class="o">=</span> <span class="p">{}</span>
                            <span class="k">for</span> <span class="n">method</span><span class="p">,</span> <span class="n">feature_filename</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">feature_filenames</span><span class="p">):</span>
                                <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">feature_filename</span><span class="p">):</span>
                                    <span class="n">feature_list</span><span class="p">[</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">FeatureContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">feature_filename</span><span class="p">)</span>
                                <span class="k">else</span><span class="p">:</span>
                                    <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Features not found [</span><span class="si">{file}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                                        <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                                        <span class="n">file</span><span class="o">=</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">]</span>
                                    <span class="p">)</span>

                                    <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                                    <span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

                            <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">model_container</span><span class="p">,</span> <span class="s1">&#39;data_processor&#39;</span><span class="p">):</span>
                                <span class="c1"># Leave feature and data processing to DataProcessor stored inside the model</span>
                                <span class="n">feature_data</span> <span class="o">=</span> <span class="n">feature_list</span>

                            <span class="k">else</span><span class="p">:</span>
                                <span class="c1"># Backward compatibility mode</span>
                                <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_stacker</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                    <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_list</span>
                                <span class="p">)</span>

                                <span class="c1"># Normalize features</span>
                                <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="p">:</span>
                                    <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_normalizer</span><span class="o">.</span><span class="n">normalize</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                                <span class="c1"># Aggregate features</span>
                                <span class="k">if</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="p">:</span>
                                    <span class="n">feature_data</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">feature_aggregator</span><span class="o">.</span><span class="n">process</span><span class="p">(</span><span class="n">feature_data</span><span class="p">)</span>

                            <span class="c1"># Frame probabilities</span>
                            <span class="n">frame_probabilities</span> <span class="o">=</span> <span class="n">model_container</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span>
                                <span class="n">feature_data</span><span class="o">=</span><span class="n">feature_data</span><span class="p">,</span>
                            <span class="p">)</span>

                            <span class="c1"># Event recognizer</span>
                            <span class="n">current_result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EventRecognizer</span><span class="p">(</span>
                                <span class="n">hop_length_seconds</span><span class="o">=</span><span class="n">model_container</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;hop_length_seconds&#39;</span><span class="p">),</span>
                                <span class="n">params</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer&#39;</span><span class="p">),</span>
                                <span class="n">class_labels</span><span class="o">=</span><span class="n">model_container</span><span class="o">.</span><span class="n">class_labels</span>
                            <span class="p">)</span><span class="o">.</span><span class="n">process</span><span class="p">(</span>
                                <span class="n">frame_probabilities</span><span class="o">=</span><span class="n">frame_probabilities</span>
                            <span class="p">)</span>

                            <span class="k">if</span> <span class="n">current_result</span><span class="p">:</span>
                                <span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">current_result</span><span class="p">:</span>
                                    <span class="n">event</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])</span>
                                    <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">event</span><span class="p">)</span>
                            <span class="k">else</span><span class="p">:</span>
                                <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">MetaDataItem</span><span class="p">({</span><span class="s1">&#39;file&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">item</span><span class="p">[</span><span class="s1">&#39;file&#39;</span><span class="p">])}))</span>

                        <span class="k">if</span> <span class="ow">not</span> <span class="n">single_file_per_fold</span><span class="p">:</span>
                            <span class="c1"># Save testing results</span>
                            <span class="n">results</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

                <span class="k">if</span> <span class="n">single_file_per_fold</span><span class="p">:</span>
                    <span class="c1"># Save testing results</span>
                    <span class="n">results</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

        <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-independent&#39;</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Event handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown event handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;recognizer.event_handling&#39;</span><span class="p">)</span>
            <span class="p">)</span>

            <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>

    <span class="nd">@before_and_after_function_wrapper</span>
<div class="viewcode-block" id="BinarySoundEventAppCore.system_evaluation"><a class="viewcode-back" href="../../generated/dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation.html#dcase_framework.application_core.BinarySoundEventAppCore.system_evaluation">[docs]</a>    <span class="k">def</span> <span class="nf">system_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">single_file_per_fold</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;System evaluation stage.</span>

<span class="sd">        Testing outputs are collected and evaluated.</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        single_file_per_fold : bool</span>
<span class="sd">            Expect single result file, otherwise expect one result file per target event.</span>
<span class="sd">            (Default value=False)</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        None</span>

<span class="sd">        Raises</span>
<span class="sd">        -------</span>
<span class="sd">        IOError</span>
<span class="sd">            Result file not found</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">reference_data_present</span><span class="p">:</span>
            <span class="k">return</span> <span class="s1">&#39;  No reference data available for dataset.&#39;</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.event_handling&#39;</span><span class="p">,</span> <span class="s1">&#39;event-dependent&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-dependent&#39;</span><span class="p">:</span>
                <span class="n">overall_metrics_per_event</span> <span class="o">=</span> <span class="p">{}</span>

                <span class="n">event_labels</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">event_labels</span>
                <span class="c1"># Select only active events</span>
                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.active_events&#39;</span><span class="p">):</span>
                    <span class="n">event_labels</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">event_labels</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.active_events&#39;</span><span class="p">)))</span>

                <span class="k">for</span> <span class="n">event_id</span><span class="p">,</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">event_labels</span><span class="p">):</span>
                    <span class="k">if</span> <span class="n">event_label</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">overall_metrics_per_event</span><span class="p">:</span>
                        <span class="n">overall_metrics_per_event</span><span class="p">[</span><span class="n">event_label</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>

                    <span class="n">segment_based_metric</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">sound_event</span><span class="o">.</span><span class="n">SegmentBasedMetrics</span><span class="p">(</span>
                        <span class="n">event_label_list</span><span class="o">=</span><span class="p">[</span><span class="n">event_label</span><span class="p">],</span>
                        <span class="n">time_resolution</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
                    <span class="p">)</span>

                    <span class="n">event_based_metric</span> <span class="o">=</span> <span class="n">sed_eval</span><span class="o">.</span><span class="n">sound_event</span><span class="o">.</span><span class="n">EventBasedMetrics</span><span class="p">(</span>
                        <span class="n">event_label_list</span><span class="o">=</span><span class="p">[</span><span class="n">event_label</span><span class="p">],</span>
                        <span class="n">evaluate_onset</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                        <span class="n">evaluate_offset</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                        <span class="n">t_collar</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
                        <span class="n">percentage_of_length</span><span class="o">=</span><span class="mf">0.5</span>
                    <span class="p">)</span>

                    <span class="k">for</span> <span class="n">fold</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_active_folds</span><span class="p">():</span>
                        <span class="k">if</span> <span class="n">single_file_per_fold</span><span class="p">:</span>
                            <span class="c1"># All results are store in single file (dcase submission format),</span>
                            <span class="c1"># collect target event-wise results.</span>
                            <span class="c1"># This requires that target event label is in the filename.</span>

                            <span class="n">result_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span>
                                <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="n">results_all</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">result_filename</span><span class="p">)</span>
                            <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span>
                            <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">results_all</span><span class="p">:</span>
                                <span class="k">if</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">file</span><span class="p">:</span>
                                    <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>

                        <span class="k">else</span><span class="p">:</span>
                            <span class="c1"># Results are store in target event-wise manner</span>
                            <span class="n">result_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_result_filename</span><span class="p">(</span>
                                <span class="n">fold</span><span class="o">=</span><span class="n">fold</span><span class="p">,</span>
                                <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">,</span>
                                <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.recognizer&#39;</span><span class="p">)</span>
                            <span class="p">)</span>

                            <span class="n">results</span> <span class="o">=</span> <span class="n">MetaDataContainer</span><span class="p">()</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">result_filename</span><span class="p">)</span>

                        <span class="k">for</span> <span class="n">file_id</span><span class="p">,</span> <span class="n">audio_filename</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">test</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">)</span><span class="o">.</span><span class="n">file_list</span><span class="p">):</span>

                            <span class="c1"># Select only row which are from current file and contains only detected event</span>
                            <span class="n">current_file_results</span> <span class="o">=</span> <span class="p">[]</span>
                            <span class="k">for</span> <span class="n">result_item</span> <span class="ow">in</span> <span class="n">results</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span>
                                    <span class="n">filename</span><span class="o">=</span><span class="n">posix_path</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">))</span>
                            <span class="p">):</span>
                                <span class="k">if</span> <span class="s1">&#39;event_label&#39;</span> <span class="ow">in</span> <span class="n">result_item</span> <span class="ow">and</span> <span class="n">result_item</span><span class="o">.</span><span class="n">event_label</span><span class="p">:</span>
                                    <span class="n">current_file_results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result_item</span><span class="p">)</span>

                            <span class="n">meta</span> <span class="o">=</span> <span class="p">[]</span>
                            <span class="k">for</span> <span class="n">meta_item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">file_meta</span><span class="p">(</span>
                                    <span class="n">filename</span><span class="o">=</span><span class="n">posix_path</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">absolute_to_relative</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">))</span>
                            <span class="p">):</span>
                                <span class="k">if</span> <span class="s1">&#39;event_label&#39;</span> <span class="ow">in</span> <span class="n">meta_item</span> <span class="ow">and</span> <span class="n">meta_item</span><span class="o">.</span><span class="n">event_label</span><span class="p">:</span>
                                    <span class="n">meta</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">meta_item</span><span class="p">)</span>

                            <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span>
                                <span class="n">reference_event_list</span><span class="o">=</span><span class="n">meta</span><span class="p">,</span>
                                <span class="n">estimated_event_list</span><span class="o">=</span><span class="n">current_file_results</span>
                            <span class="p">)</span>

                            <span class="n">event_based_metric</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span>
                                <span class="n">reference_event_list</span><span class="o">=</span><span class="n">meta</span><span class="p">,</span>
                                <span class="n">estimated_event_list</span><span class="o">=</span><span class="n">current_file_results</span>
                            <span class="p">)</span>

                    <span class="n">overall_metrics_per_event</span><span class="p">[</span><span class="n">event_label</span><span class="p">][</span><span class="s1">&#39;segment_based_metrics&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">results</span><span class="p">()</span>
                    <span class="n">overall_metrics_per_event</span><span class="p">[</span><span class="n">event_label</span><span class="p">][</span><span class="s1">&#39;event_based_metrics&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">event_based_metric</span><span class="o">.</span><span class="n">results</span><span class="p">()</span>
                    <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.show_details&#39;</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Event [</span><span class="si">{event}</span><span class="s2">], Evaluation over </span><span class="si">{folds:d}</span><span class="s2"> folds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                            <span class="n">event</span><span class="o">=</span><span class="n">event_label</span><span class="p">,</span>
                            <span class="n">folds</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">fold_count</span>
                        <span class="p">)</span>

                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="se">\n</span><span class="s2">&quot;</span>

                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Event-based metrics </span><span class="se">\n</span><span class="s2">&quot;</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">event_based_metric</span><span class="o">.</span><span class="n">result_report_overall</span><span class="p">()</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">event_based_metric</span><span class="o">.</span><span class="n">result_report_class_wise</span><span class="p">()</span>

                        <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Segment-based metrics </span><span class="se">\n</span><span class="s2">&quot;</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">result_report_overall</span><span class="p">()</span>
                        <span class="n">output</span> <span class="o">+=</span> <span class="n">segment_based_metric</span><span class="o">.</span><span class="n">result_report_class_wise</span><span class="p">()</span>

                <span class="n">overall_metrics_per_event</span> <span class="o">=</span> <span class="n">DottedDict</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="p">)</span>

                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot; </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  Overall metrics </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;  =============== </span><span class="se">\n</span><span class="s2">&quot;</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> | </span><span class="si">{event_based_er:7s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:7s}</span><span class="s2"> |</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;Event label&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;Seg. F1&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;Seg. ER&#39;</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;Evt. F1&#39;</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;Evt. ER&#39;</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> + </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{event_based_er:7s}</span><span class="s2"> + </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{segment_based_er:7s}</span><span class="s2"> +</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="o">*</span><span class="mi">17</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="o">*</span><span class="mi">7</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">avg</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;segment_based_er&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;event_based_fscore&#39;</span><span class="p">:</span> <span class="p">[],</span>
                    <span class="s1">&#39;event_based_er&#39;</span><span class="p">:</span> <span class="p">[],</span>
                <span class="p">}</span>

                <span class="k">for</span> <span class="n">event_id</span><span class="p">,</span> <span class="n">event_label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">event_labels</span><span class="p">):</span>
                    <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_er:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:&lt;7s}</span><span class="s2"> |</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                        <span class="n">event_label</span><span class="o">=</span><span class="n">event_label</span><span class="p">,</span>
                        <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span><span class="o">+</span><span class="s1">&#39;.segment_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span><span class="o">*</span><span class="mi">100</span><span class="p">),</span>
                        <span class="n">segment_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span><span class="o">+</span><span class="s1">&#39;.segment_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">)),</span>
                        <span class="n">event_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">),</span>
                        <span class="n">event_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">)),</span>
                    <span class="p">)</span>

                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span><span class="o">+</span><span class="s1">&#39;.segment_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span><span class="o">+</span><span class="s1">&#39;.segment_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">))</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.f_measure.f_measure&#39;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">)</span>
                    <span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">overall_metrics_per_event</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="n">event_label</span> <span class="o">+</span> <span class="s1">&#39;.event_based_metrics.overall.error_rate.error_rate&#39;</span><span class="p">))</span>

                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> + </span><span class="si">{event_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{event_based_er:7s}</span><span class="s2"> + </span><span class="si">{segment_based_fscore:7s}</span><span class="s2"> + </span><span class="si">{segment_based_er:7s}</span><span class="s2"> +</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">17</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s1">&#39;-&#39;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">,</span>
                <span class="p">)</span>
                <span class="n">output</span> <span class="o">+=</span> <span class="s2">&quot;    </span><span class="si">{event_label:&lt;17s}</span><span class="s2"> | </span><span class="si">{event_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{event_based_er:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_fscore:&lt;7s}</span><span class="s2"> | </span><span class="si">{segment_based_er:&lt;7s}</span><span class="s2"> |</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;Average&#39;</span><span class="p">,</span>
                    <span class="n">segment_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">])),</span>
                    <span class="n">segment_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">])),</span>
                    <span class="n">event_based_fscore</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">])),</span>
                    <span class="n">event_based_er</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{:4.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">])),</span>
                <span class="p">)</span>

            <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.event_handling&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;event-independent&#39;</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Event handling mode not implemented yet [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.event_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">else</span><span class="p">:</span>
                <span class="n">message</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{name}</span><span class="s1">: Unknown event handling mode [</span><span class="si">{mode}</span><span class="s1">]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span>
                    <span class="n">mode</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.event_handling&#39;</span><span class="p">)</span>
                <span class="p">)</span>

                <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>

            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.enable&#39;</span><span class="p">):</span>
                <span class="n">filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;evaluator.saving.filename&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                    <span class="n">dataset_name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dataset</span><span class="o">.</span><span class="n">storage_name</span><span class="p">,</span>
                    <span class="n">parameter_set</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;active_set&#39;</span><span class="p">],</span>
                    <span class="n">parameter_hash</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;_hash&#39;</span><span class="p">],</span>
                    <span class="p">)</span>
                <span class="n">output_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="o">.</span><span class="n">get_path</span><span class="p">(</span><span class="s1">&#39;path.evaluator&#39;</span><span class="p">),</span> <span class="n">filename</span><span class="p">)</span>

                <span class="n">output_data</span> <span class="o">=</span> <span class="p">{</span>
                    <span class="s1">&#39;overall_metrics_per_event&#39;</span><span class="p">:</span> <span class="n">overall_metrics_per_event</span><span class="p">,</span>
                    <span class="s1">&#39;average&#39;</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_fscore&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;segment_based_er&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;segment_based_er&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;event_based_fscore&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_fscore&#39;</span><span class="p">]),</span>
                        <span class="s1">&#39;event_based_er&#39;</span><span class="p">:</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">avg</span><span class="p">[</span><span class="s1">&#39;event_based_er&#39;</span><span class="p">]),</span>
                    <span class="p">},</span>
                    <span class="s1">&#39;parameters&#39;</span><span class="p">:</span> <span class="nb">dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
                <span class="p">}</span>
                <span class="n">ParameterFile</span><span class="p">(</span><span class="n">output_data</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="n">output_file</span><span class="p">)</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>

            <span class="k">return</span> <span class="n">output</span></div>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_filename</span><span class="p">(</span><span class="n">audio_file</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get feature filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        audio_file : str</span>
<span class="sd">            audio file name from which the features are extracted</span>
<span class="sd">        path :  str</span>
<span class="sd">            feature path</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        feature_filename : str, dict</span>
<span class="sd">            full feature filename or dict of filenames</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="n">audio_filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">audio_file</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;sequence_&#39;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>

        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;sequence_&#39;</span> <span class="o">+</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">audio_filename</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_feature_normalizer_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get normalizer filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            normalizer path</span>
<span class="sd">        event_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        normalizer_filename : str</span>
<span class="sd">            full normalizer filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">{}</span>
            <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
                <span class="n">paths</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
            <span class="n">paths</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">path</span><span class="p">:</span>
                <span class="n">paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">))</span>
            <span class="k">return</span> <span class="n">paths</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;scale_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_model_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;cpickle&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get model filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            model path</span>
<span class="sd">        scene_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        model_filename : str</span>
<span class="sd">            full model filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;model_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>

    <span class="nd">@staticmethod</span>
    <span class="k">def</span> <span class="nf">_get_result_filename</span><span class="p">(</span><span class="n">fold</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">event_label</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span> <span class="n">extension</span><span class="o">=</span><span class="s1">&#39;txt&#39;</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Get result filename</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        fold : int &gt;= 0</span>
<span class="sd">            evaluation fold number</span>
<span class="sd">        path :  str</span>
<span class="sd">            result path</span>
<span class="sd">        scene_label : str</span>
<span class="sd">            Scene label</span>
<span class="sd">            Default value &quot;all&quot;</span>
<span class="sd">        extension : str</span>
<span class="sd">            file extension</span>
<span class="sd">            Default value &quot;cpickle&quot;</span>

<span class="sd">        Returns</span>
<span class="sd">        -------</span>
<span class="sd">        result_filename : str</span>
<span class="sd">            full result filename</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="k">if</span> <span class="n">fold</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results&#39;</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s1">&#39;results_fold&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">fold</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;_&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">event_label</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;.&#39;</span> <span class="o">+</span> <span class="n">extension</span><span class="p">)</span></div>


<span class="k">class</span> <span class="nc">AudioTaggingAppCore</span><span class="p">(</span><span class="n">AppCore</span><span class="p">):</span>
    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
        <span class="sd">&quot;&quot;&quot;Constructor</span>

<span class="sd">        Parameters</span>
<span class="sd">        ----------</span>
<span class="sd">        name : str</span>
<span class="sd">            Application name.</span>
<span class="sd">            Default value &quot;Application&quot;</span>
<span class="sd">        setup_label : str</span>
<span class="sd">            Application setup label.</span>
<span class="sd">            Default value &quot;System&quot;</span>
<span class="sd">        params : ParameterContainer</span>
<span class="sd">            Parameter container containing all parameters needed by application.</span>
<span class="sd">        dataset : str or class</span>
<span class="sd">            Dataset, if none given dataset name is taken from parameters &quot;dataset-&gt;parameters-&gt;name&quot;.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        dataset_evaluation_mode : str</span>
<span class="sd">            Dataset evaluation mode, &quot;full&quot; or &quot;folds&quot;. If none given, taken from parameters.</span>
<span class="sd">            &quot;dataset-&gt;parameter-&gt;evaluation_mode&quot;</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        show_progress_in_console : bool</span>
<span class="sd">            Show progress in console.</span>
<span class="sd">            Default value &quot;True&quot;</span>
<span class="sd">        log_system_progress : bool</span>
<span class="sd">            Log progress in console.</span>
<span class="sd">            Default value &quot;False&quot;</span>
<span class="sd">        logger : logging</span>
<span class="sd">            Instance of logging</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        Datasets : dict of Dataset classes</span>
<span class="sd">            Dict of datasets available for application. Dict key is name of the dataset and value link to class</span>
<span class="sd">            inherited from Dataset base class. Given dict is used to update internal dict.</span>
<span class="sd">            Default value &quot;none&quot;</span>
<span class="sd">        FeatureExtractor : class inherited from FeatureExtractor</span>
<span class="sd">            Feature extractor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureExtractor&quot;</span>
<span class="sd">        FeatureNormalizer : class inherited from FeatureNormalizer</span>
<span class="sd">            Feature normalizer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureNormalizer&quot;</span>
<span class="sd">        FeatureMasker : class inherited from FeatureMasker</span>
<span class="sd">            Feature masker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureMasker&quot;</span>
<span class="sd">        FeatureContainer : class inherited from FeatureContainer</span>
<span class="sd">            Feature container class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureContainer&quot;</span>
<span class="sd">        FeatureStacker : class inherited from FeatureStacker</span>
<span class="sd">            Feature stacker class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureStacker&quot;</span>
<span class="sd">        FeatureAggregator : class inherited from FeatureAggregator</span>
<span class="sd">            Feature aggregate class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FeatureAggregator&quot;</span>
<span class="sd">        DataProcessor : class inherited from DataProcessor</span>
<span class="sd">            DataProcessor class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataProcessor&quot;</span>
<span class="sd">        DataSequencer : class inherited from DataSequencer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;DataSequencer&quot;</span>
<span class="sd">        ProcessingChain : class inherited from ProcessingChain</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;ProcessingChain&quot;</span>
<span class="sd">        Learners: dict of Learner classes</span>
<span class="sd">            Dict of learners available for application. Dict key is method the class implements and value link to</span>
<span class="sd">            class inherited from LearnerContainer base class. Given dict is used to update internal dict.</span>
<span class="sd">        SceneRecognizer : class inherited from SceneRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;SceneRecognizer&quot;</span>
<span class="sd">        EventRecognizer : class inherited from EventRecognizer</span>
<span class="sd">            DataSequencer class. Use this to override default class.</span>
<span class="sd">            Default value &quot;EventRecognizer&quot;</span>
<span class="sd">        ui : class inherited from FancyLogger</span>
<span class="sd">            Output formatter class. Use this to override default class.</span>
<span class="sd">            Default value &quot;FancyLogger&quot;</span>

<span class="sd">        Raises</span>
<span class="sd">        ------</span>
<span class="sd">        ValueError:</span>
<span class="sd">            No valid ParameterContainer given.</span>

<span class="sd">        &quot;&quot;&quot;</span>

        <span class="nb">super</span><span class="p">(</span><span class="n">AudioTaggingAppCore</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>

        <span class="c1"># Fetch datasets</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span> <span class="o">=</span> <span class="p">{}</span>

        <span class="k">for</span> <span class="n">dataset_item</span> <span class="ow">in</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">AudioTaggingDataset</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="p">[</span><span class="n">dataset_item</span><span class="o">.</span><span class="vm">__name__</span><span class="p">]</span> <span class="o">=</span> <span class="n">dataset_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Datasets</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">))</span>

        <span class="c1"># Set current dataset</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">dataset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_dataset</span><span class="p">(</span><span class="n">dataset</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;dataset&#39;</span><span class="p">))</span>

        <span class="c1"># Fetch all learners</span>
        <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span> <span class="o">=</span> <span class="p">{}</span>
        <span class="n">learner_list</span> <span class="o">=</span> <span class="n">get_class_inheritors</span><span class="p">(</span><span class="n">SceneClassifier</span><span class="p">)</span>
        <span class="k">for</span> <span class="n">learner_item</span> <span class="ow">in</span> <span class="n">learner_list</span><span class="p">:</span>
            <span class="n">learner</span> <span class="o">=</span> <span class="n">learner_item</span><span class="p">()</span>
            <span class="k">if</span> <span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">:</span>
                <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="p">[</span><span class="n">learner</span><span class="o">.</span><span class="n">method</span><span class="p">]</span> <span class="o">=</span> <span class="n">learner_item</span>

        <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">):</span>
            <span class="bp">self</span><span class="o">.</span><span class="n">Learners</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Learners&#39;</span><span class="p">))</span>

</pre></div>

           </div>
           <div class="articleComments">
            
           </div>
          </div>
          <footer>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2017, Toni Heittola et al..

    </p>
  </div> 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../',
            VERSION:'1.0',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: '.txt'
        };
    </script>
      <script type="text/javascript" src="../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="../../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>